503. 下一个更大元素 II
循环数组有取余,同时遍历范围扩大为两倍。
class Solution {
public:
vector<int> nextGreaterElements(vector<int>& nums) {
stack<int> st;
vector<int> result(nums.size(),-1);
for(int i=0;i<nums.size()*2;i++)
{
while(!st.empty() && nums[i%nums.size()] > nums[st.top()])
{
result[st.top()] = nums[i%nums.size()];
st.pop();
}
st.push(i%nums.size());
}
return result;
}
};