题目链接

题目描述

image.png
image.png

思路

测试用例建议为:2, 5, 3, 8, 7, 6, 9

  1. public int[] nextGreaterElement(int[] nums1, int[] nums2) {
  2. Map<Integer, Integer> map = new HashMap<>(16);
  3. Deque<Integer> stack = new ArrayDeque<>();
  4. for (int i = nums2.length - 1; i >= 0; --i) {
  5. int num = nums2[i];
  6. while (!stack.isEmpty() && num >= stack.peek()) {
  7. stack.pop();
  8. }
  9. map.put(num, stack.isEmpty() ? -1 : stack.peek());
  10. stack.push(num);
  11. }
  12. int[] res = new int[nums1.length];
  13. for (int i = 0; i < nums1.length; ++i) {
  14. res[i] = map.get(nums1[i]);
  15. }
  16. return res;
  17. }