寻找下一个更大元素的 Php 程序
原文:https://www . geesforgeks . org/PHP-program-to-find-next-greater-element/
给定一个数组,为每个元素打印下一个更大的元素(NGE)。元素 x 的下一个较大元素是数组中 x 右侧的第一个较大元素。不存在更大元素的元素,将下一个更大的元素视为-1。
示例:
- 对于数组,最右边的元素总是将下一个较大的元素作为-1。
- 对于按降序排序的数组,所有元素的下一个较大元素为-1。
- 对于输入数组[4,5,2,25],每个元素的下一个较大元素如下。
Element NGE
4 --> 5
5 --> 25
2 --> 25
25 --> -1
d) 对于输入数组[13,7,6,12],每个元素的下一个较大元素如下。
Element NGE
13 --> -1
7 --> 12
6 --> 12
12 --> -1
方法 1(简单) 使用两个循环:外循环逐个拾取所有元素。内环为外环拾取的元素寻找第一个较大的元素。如果找到更大的元素,则该元素被打印为下一个,否则,打印-1。
下面是上述方法的实现:
服务器端编程语言(Professional Hypertext Preprocessor 的缩写)
<?php
// Simple PHP program to print next
// greater elements in a given array
/* prints element and NGE pair for
all elements of arr[] of size n */
function printNGE($arr, $n)
{
for ($i = 0; $i < $n; $i++)
{
$next = -1;
for ($j = $i + 1; $j < $n; $j++)
{
if ($arr[$i] < $arr[$j])
{
$next = $arr[$j];
break;
}
}
echo $arr[$i]." -- ". $next."
";
}
}
// Driver Code
$arr= array(11, 13, 21, 3);
$n = count($arr);
printNGE($arr, $n);
// This code is contributed by Sam007
?>
Output
11 -- 13
13 -- 21
21 -- -1
3 -- -1
时间复杂度:O(N2) 辅助空间: O(1)
更多详情请参考下一个更大元素的完整文章!
版权属于:月萌API www.moonapi.com,转载请注明出处