主页有其他数据结构内容(持续更新中)
难度:Medium 代码:class Solution {
public:
vector nextGreaterElements(vector& nums) {
vector res(nums.size());
stack st;
// 假装数组翻倍,这样可以保证每个数既可以与前面的数比较,也可以与后面的比较,实现循环数组的效果
for(int i = 2 * nums.size() - 1; i >= 0; i--){
while(!st.empty() && nums[i % nums.size()] >= st.top()){
st.pop();
}
res[i % nums.size()] = st.empty() ? -1 : st.top();
st.push(nums[i % nums.size()]);
}
return res;
}
};



