class Solution {
public int[] nextGreaterElement(int[] nums1, int[] nums2) {
Deque<Integer> st = new LinkedList<>();
int[] res1 = new int[10010];
st.addLast(nums2[0]);
for(int i = 1; i < nums2.length;i++){
while(st.size() > 0 && st.peekLast() < nums2[i]){
res1[st.pollLast()] = nums2[i];
}
st.addLast(nums2[i]);
}
while(st.size() > 0) res1[st.pollLast()] = -1;
int[] res2 = new int[nums1.length];
for(int i = 0; i < nums1.length;i++){
res2[i] = res1[nums1[i]];
}
return res2;
}
}
单调栈比动态规划好懂多了。。。