1.暴力法:
很简单 对于每个元素前后搜索这里就不写了。
2.单调栈 由于是循环因此数组长度为2*N-1
class Solution {
stack<int>a;
public:
vector<int> nextGreaterElements(vector<int>& nums) {
vector<int>res(nums.size(),-1);
int n=nums.size();
for(int i=0;i<n*2-1;i++)
{
while(!a.empty()&&nums[i%n]>nums[a.top()])
{
res[a.top()]=nums[i%n];
a.pop();
}
a.push(i%n);
}
return res;
}
};