Skip to content

Commit a388645

Browse files
committed
feat: add js solution to lc problem: No.0503. Next Greater Element II
1 parent f6141fd commit a388645

File tree

3 files changed

+61
-0
lines changed

3 files changed

+61
-0
lines changed

solution/0500-0599/0503.Next Greater Element II/README.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,28 @@ class Solution {
6767
}
6868
```
6969

70+
### **JavaScript**
71+
72+
```js
73+
/**
74+
* @param {number[]} nums
75+
* @return {number[]}
76+
*/
77+
var nextGreaterElements = function(nums) {
78+
let n = nums.length;
79+
let stack = [];
80+
let res = new Array(n).fill(-1);
81+
for (let i = 0; i < 2 * n; i++) {
82+
let cur = nums[i % n];
83+
while(stack.length > 0 && nums[stack[stack.length - 1]] < cur) {
84+
res[stack.pop()] = cur;
85+
}
86+
stack.push(i % n);
87+
}
88+
return res;
89+
};
90+
```
91+
7092
### **...**
7193

7294
```

solution/0500-0599/0503.Next Greater Element II/README_EN.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,28 @@ class Solution {
7474
}
7575
```
7676

77+
### **JavaScript**
78+
79+
```js
80+
/**
81+
* @param {number[]} nums
82+
* @return {number[]}
83+
*/
84+
var nextGreaterElements = function(nums) {
85+
let n = nums.length;
86+
let stack = [];
87+
let res = new Array(n).fill(-1);
88+
for (let i = 0; i < 2 * n; i++) {
89+
let cur = nums[i % n];
90+
while(stack.length > 0 && nums[stack[stack.length - 1]] < cur) {
91+
res[stack.pop()] = cur;
92+
}
93+
stack.push(i % n);
94+
}
95+
return res;
96+
};
97+
```
98+
7799
### **...**
78100

79101
```
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/**
2+
* @param {number[]} nums
3+
* @return {number[]}
4+
*/
5+
var nextGreaterElements = function(nums) {
6+
let n = nums.length;
7+
let stack = [];
8+
let res = new Array(n).fill(-1);
9+
for (let i = 0; i < 2 * n; i++) {
10+
let cur = nums[i % n];
11+
while(stack.length > 0 && nums[stack[stack.length - 1]] < cur) {
12+
res[stack.pop()] = cur;
13+
}
14+
stack.push(i % n);
15+
}
16+
return res;
17+
};

0 commit comments

Comments
 (0)