@@ -44,13 +44,13 @@ The second 1's next greater number needs to search circularly, which is also
44
44
``` python
45
45
class Solution :
46
46
def nextGreaterElements (self , nums : List[int ]) -> List[int ]:
47
- stack = []
48
47
n = len (nums)
49
48
res = [- 1 ] * n
49
+ stk = []
50
50
for i in range (n << 1 ):
51
- while stack and nums[stack [- 1 ]] < nums[i % n]:
52
- res[stack .pop()] = nums[i % n]
53
- stack .append(i % n)
51
+ while stk and nums[stk [- 1 ]] < nums[i % n]:
52
+ res[stk .pop()] = nums[i % n]
53
+ stk .append(i % n)
54
54
return res
55
55
```
56
56
@@ -62,12 +62,12 @@ class Solution {
62
62
int n = nums. length;
63
63
int [] res = new int [n];
64
64
Arrays . fill(res, - 1 );
65
- Deque<Integer > stack = new ArrayDeque<> ();
65
+ Deque<Integer > stk = new ArrayDeque<> ();
66
66
for (int i = 0 ; i < (n << 1 ); ++ i) {
67
- while (! stack . isEmpty() && nums[stack . peek()] < nums[i % n]) {
68
- res[stack . pop()] = nums[i % n];
67
+ while (! stk . isEmpty() && nums[stk . peek()] < nums[i % n]) {
68
+ res[stk . pop()] = nums[i % n];
69
69
}
70
- stack . push(i % n);
70
+ stk . push(i % n);
71
71
}
72
72
return res;
73
73
}
@@ -96,6 +96,50 @@ class Solution {
96
96
};
97
97
```
98
98
99
+ ### ** C++**
100
+
101
+ ``` cpp
102
+ class Solution {
103
+ public:
104
+ vector<int > nextGreaterElements(vector<int > &nums) {
105
+ int n = nums.size();
106
+ vector<int > res(n, -1);
107
+ stack<int > stk;
108
+ for (int i = 0; i < (n << 1); ++i)
109
+ {
110
+ while (!stk.empty() && nums[ stk.top()] < nums[ i % n] )
111
+ {
112
+ res[ stk.top()] = nums[ i % n] ;
113
+ stk.pop();
114
+ }
115
+ stk.push(i % n);
116
+ }
117
+ return res;
118
+ }
119
+ };
120
+ ```
121
+
122
+ ### **Go**
123
+
124
+ ```go
125
+ func nextGreaterElements(nums []int) []int {
126
+ n := len(nums)
127
+ res := make([]int, n)
128
+ for i := range res {
129
+ res[i] = -1
130
+ }
131
+ var stk []int
132
+ for i := 0; i < (n << 1); i++ {
133
+ for len(stk) > 0 && nums[stk[len(stk)-1]] < nums[i%n] {
134
+ res[stk[len(stk)-1]] = nums[i%n]
135
+ stk = stk[:len(stk)-1]
136
+ }
137
+ stk = append(stk, i%n)
138
+ }
139
+ return res
140
+ }
141
+ ```
142
+
99
143
### ** ...**
100
144
101
145
```
0 commit comments