Skip to content

Commit c5d1cfd

Browse files
committed
496
1 parent 9a68630 commit c5d1cfd

File tree

1 file changed

+38
-10
lines changed

1 file changed

+38
-10
lines changed
Lines changed: 38 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,43 @@
11
<?php
2-
class Solution {
3-
4-
// /**
5-
// * @param Integer[] $nums1
6-
// * @param Integer[] $nums2
7-
// * @return Integer[]
8-
// */
9-
function nextGreaterElement($nums1, $nums2) {
10-
2+
class Solution
3+
{
4+
/**
5+
* @param Integer[] $nums1
6+
* @param Integer[] $nums2
7+
* @return Integer[]
8+
*/
9+
public function nextGreaterElement($nums1, $nums2)
10+
{
11+
$nextGreater = [];
12+
$stack = [];
13+
$result = [];
14+
15+
for ($i = count($nums2) - 1; $i >= 0; $i--) {
16+
17+
$number = $nums2[$i];
18+
19+
while (! empty($stack) && end($stack) <= $number) {
20+
array_pop($stack);
21+
}
22+
23+
$nextGreater[$number] = empty($stack) ? -1 : end($stack);
24+
25+
array_push($stack, $number);
26+
}
27+
28+
return array_map(function($num) use ($nextGreater) {
29+
return $nextGreater[$num];
30+
}, $nums1);
31+
1132
}
1233
}
1334

35+
$solution = new Solution();
36+
37+
$nums1 = [4, 1, 2, 7, 5, 3, 6];
38+
39+
$nums2 = [1, 3, 4, 2, 7, 5, 6];
40+
41+
$result = $solution->nextGreaterElement($nums1, $nums2);
1442

15-
?>
43+
print_r($result); // Output: [7, 5, 6, 2, 4, 3, -1]

0 commit comments

Comments
 (0)