class Solution {
public int[] nextGreaterElements(int[] nums) {
Deque<Integer> st = new LinkedList<>();
st.addLast(0);
int[] res = new int[nums.length];
for(int i = 1;i < nums.length;i++){
while(st.size() > 0 && nums[st.peekLast()] < nums[i]){
res[st.pollLast()] = nums[i];
}
st.addLast(i);
}
for(int i = 0;i < nums.length;i++){
while(st.size() > 0 && nums[st.peekLast()] < nums[i]){
res[st.pollLast()] = nums[i];
}
}
while(st.size() > 0) res[st.pollLast()] = -1;
return res;
}
}
单调栈还是好懂啊!!