File tree Expand file tree Collapse file tree 4 files changed +24
-24
lines changed
0503.Next Greater Element II Expand file tree Collapse file tree 4 files changed +24
-24
lines changed Original file line number Diff line number Diff line change @@ -255,18 +255,16 @@ func nextGreaterElements(nums []int) []int {
255
255
256
256
``` ts
257
257
function nextGreaterElements(nums : number []): number [] {
258
- let stack: number [] = [],
258
+ const stack: number [] = [],
259
259
len = nums .length ;
260
- let res: number [] = new Array (len ).fill (- 1 );
260
+ const res: number [] = new Array (len ).fill (- 1 );
261
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 ];
262
+ const j = i % len ;
263
+ while (stack .length !== 0 && nums [stack [stack .length - 1 ]] < nums [j ]) {
264
+ res [stack [stack .length - 1 ]] = nums [j ];
267
265
stack .pop ();
268
266
}
269
- stack .push (i % len );
267
+ stack .push (j );
270
268
}
271
269
return res ;
272
270
}
Original file line number Diff line number Diff line change @@ -243,18 +243,16 @@ func nextGreaterElements(nums []int) []int {
243
243
244
244
``` ts
245
245
function nextGreaterElements(nums : number []): number [] {
246
- let stack: number [] = [],
246
+ const stack: number [] = [],
247
247
len = nums .length ;
248
- let res: number [] = new Array (len ).fill (- 1 );
248
+ const res: number [] = new Array (len ).fill (- 1 );
249
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 ];
250
+ const j = i % len ;
251
+ while (stack .length !== 0 && nums [stack [stack .length - 1 ]] < nums [j ]) {
252
+ res [stack [stack .length - 1 ]] = nums [j ];
255
253
stack .pop ();
256
254
}
257
- stack .push (i % len );
255
+ stack .push (j );
258
256
}
259
257
return res ;
260
258
}
Original file line number Diff line number Diff line change 1
1
function nextGreaterElements ( nums : number [ ] ) : number [ ] {
2
- let stack : number [ ] = [ ] ,
2
+ const stack : number [ ] = [ ] ,
3
3
len = nums . length ;
4
- let res : number [ ] = new Array ( len ) . fill ( - 1 ) ;
4
+ const res : number [ ] = new Array ( len ) . fill ( - 1 ) ;
5
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 ] ;
6
+ const j = i % len ;
7
+ while ( stack . length !== 0 && nums [ stack [ stack . length - 1 ] ] < nums [ j ] ) {
8
+ res [ stack [ stack . length - 1 ] ] = nums [ j ] ;
11
9
stack . pop ( ) ;
12
10
}
13
- stack . push ( i % len ) ;
11
+ stack . push ( j ) ;
14
12
}
15
13
return res ;
16
14
}
Original file line number Diff line number Diff line change 36
36
37
37
<!-- 这里可写通用的实现逻辑 -->
38
38
39
+ ** 方法一:模拟**
40
+
41
+ 我们不妨假设 ` num ` 大于等于 $0$,那么,如果 ` num ` 等于 $0$,只需要返回 $0$ 即可。否则,我们将 $num$ 模 $7$ 的结果保存起来,最后逆序拼接成字符串即可。
42
+
43
+ 时间复杂度 $O(\log n)$,忽略答案的空间消耗,空间复杂度 $O(1)$。其中 $n$ 是 ` num ` 的绝对值大小。
44
+
39
45
<!-- tabs:start -->
40
46
41
47
### ** Python3**
You can’t perform that action at this time.
0 commit comments