Skip to content

Commit d480c8d

Browse files
add 503
1 parent 8500812 commit d480c8d

File tree

3 files changed

+37
-0
lines changed

3 files changed

+37
-0
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,7 @@ LeetCode
243243
|0474|[Ones and Zeroes](https://leetcode.com/problems/ones-and-zeroes/) | c | [c++](./src/0474-Ones-and-Zeroes/0474.cpp) |[python](./src/0474-Ones-and-Zeroes/0474.py)|||Medium|
244244
|0494|[Target Sum](https://leetcode.com/problems/target-sum/) | c | [c++](./src/0494-Target-Sum/0494.cpp) |[python](./src/0494-Target-Sum/0494.py)|||Medium|
245245
|0496|[Next Greater Element I](https://leetcode.com/problems/next-greater-element-i/) | c | [c++](./src/0496-Next-Greater-Element-I/0496.cpp) |[python](./src/0496-Next-Greater-Element-I/0496.py)|||Easy|
246+
|0503|[Next Greater Element II](https://leetcode.com/problems/next-greater-element-i/) | c | [c++](./src/0503-Next-Greater-Element-II/0503.cpp) |[python](./src/0503-Next-Greater-Element-II/0503.py)|||Medium|
246247
|0525|[Contiguous Array](https://leetcode.com/problems/contiguous-array/) | c | [c++](./src/0525-Contiguous-Array/0525.cpp) |[python](./src/0525-Contiguous-Array/0525.py)|||Medium|
247248
|0560|[Subarray Sum Equals K](https://leetcode.com/problems/subarray-sum-equals-k/) | c | [c++](./src/0560-Subarray-Sum-Equals-K/0560.cpp) |[python](./src/0560-Subarray-Sum-Equals-K/0560.py)|||Medium|
248249
|0739|[Daily Temperatures](https://leetcode.com/problems/daily-temperatures/) | c | [c++](./src/0739-Daily-Temperatures/0739.cpp) |[python](./src/0739-Daily-Temperatures/0739.py)|||Medium|
+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#include <vector>
2+
using namespace std;
3+
4+
static int x = []() {std::ios::sync_with_stdio(false); cin.tie(0); return 0; }();
5+
class Solution
6+
{
7+
public:
8+
vector<int> nextGreaterElements(vector<int>& nums)
9+
{
10+
vector<int> stack;
11+
vector<int> res(nums.size(), -1);
12+
for (int i = 0; i < nums.size()*2; ++i)
13+
{
14+
while (!stack.empty() and nums[stack.back()] < nums[i%nums.size()])
15+
{
16+
res[stack.back()] = nums[i%nums.size()]; stack.pop_back();
17+
}
18+
stack.push_back(i%nums.size());
19+
}
20+
return res;
21+
}
22+
};
+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
class Solution:
2+
def nextGreaterElements(self, nums):
3+
"""
4+
:type nums: List[int]
5+
:rtype: List[int]
6+
"""
7+
stack, nums_len = list(), len(nums)
8+
res = [-1] * nums_len
9+
for i in range(nums_len*2):
10+
while stack and nums[stack[-1]] < nums[i%nums_len]:
11+
res[stack.pop()] = nums[i%nums_len]
12+
stack.append(i%nums_len)
13+
14+
return res

0 commit comments

Comments
 (0)