Skip to content

Commit d56407c

Browse files
authored
feat: add typescript solution to lc problem: No.0503 (#886)
No.0503. Next Greater Element II
1 parent d75c29d commit d56407c

File tree

3 files changed

+58
-0
lines changed

3 files changed

+58
-0
lines changed

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

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,27 @@ func nextGreaterElements(nums []int) []int {
251251
}
252252
```
253253

254+
### **TypeScript**
255+
256+
```ts
257+
function nextGreaterElements(nums: number[]): number[] {
258+
let stack: number[] = [],
259+
len = nums.length;
260+
let res: number[] = new Array(len).fill(-1);
261+
for (let i = 0; i < 2 * len - 1; i++) {
262+
while (
263+
stack.length !== 0 &&
264+
nums[stack[stack.length - 1]] < nums[i % len]
265+
) {
266+
res[stack[stack.length - 1]] = nums[i % len];
267+
stack.pop();
268+
}
269+
stack.push(i % len);
270+
}
271+
return res;
272+
}
273+
```
274+
254275
### **...**
255276

256277
```

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

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,27 @@ func nextGreaterElements(nums []int) []int {
239239
}
240240
```
241241

242+
### **TypeScript**
243+
244+
```ts
245+
function nextGreaterElements(nums: number[]): number[] {
246+
let stack: number[] = [],
247+
len = nums.length;
248+
let res: number[] = new Array(len).fill(-1);
249+
for (let i = 0; i < 2 * len - 1; i++) {
250+
while (
251+
stack.length !== 0 &&
252+
nums[stack[stack.length - 1]] < nums[i % len]
253+
) {
254+
res[stack[stack.length - 1]] = nums[i % len];
255+
stack.pop();
256+
}
257+
stack.push(i % len);
258+
}
259+
return res;
260+
}
261+
```
262+
242263
### **...**
243264

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

0 commit comments

Comments
 (0)