题目描述
思路
- 暴力循环(不解释了)
- 单调栈,哈希表
测试用例建议为:2, 5, 3, 8, 7, 6, 9
public int[] nextGreaterElement(int[] nums1, int[] nums2) {Map<Integer, Integer> map = new HashMap<>(16);Deque<Integer> stack = new ArrayDeque<>();for (int i = nums2.length - 1; i >= 0; --i) {int num = nums2[i];while (!stack.isEmpty() && num >= stack.peek()) {stack.pop();}map.put(num, stack.isEmpty() ? -1 : stack.peek());stack.push(num);}int[] res = new int[nums1.length];for (int i = 0; i < nums1.length; ++i) {res[i] = map.get(nums1[i]);}return res;}

