Skip to content

Commit 93e372f

Browse files
committed
Implement next greater element
1 parent e2fe686 commit 93e372f

2 files changed

Lines changed: 24 additions & 2 deletions

File tree

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
+ stack
2-
+ next greater element
32
+ postfix evaluation
4-
+ balanced parentheses
3+
+ balanced parentheses
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
function nextGreaterElement(arr) {
2+
stack = [];
3+
res = Array(arr.length);
4+
for (var i = 0; i < arr.length; i++) {
5+
curr = arr[i];
6+
while (stack.length && curr > arr[stack[stack.length - 1]]) {
7+
res[stack.pop()] = curr;
8+
}
9+
stack.push(i);
10+
}
11+
12+
while (stack.length) {
13+
res[stack.pop()] = -1;
14+
}
15+
16+
return res;
17+
}
18+
19+
console.debug(nextGreaterElement([13, 7, 6, 12])); // [-1, 12, 12, -1]
20+
console.debug(nextGreaterElement([])); // []
21+
console.debug(nextGreaterElement([2, 3, 999])); // [3, 999, -1]
22+
console.debug(nextGreaterElement([5, 4, 3, 2, 1])); // [-1, -1, -1, -1, -1]
23+
console.debug(nextGreaterElement([1, 2, 3, 4, 5])); // [2, 3, 4, 5, -1]

0 commit comments

Comments
 (0)