diff --git a/src/main/java/com/cool/ling_cha_mount/stack/Num496.java b/src/main/java/com/cool/ling_cha_mount/stack/Num496.java new file mode 100644 index 0000000..457f48d --- /dev/null +++ b/src/main/java/com/cool/ling_cha_mount/stack/Num496.java @@ -0,0 +1,22 @@ +package com.cool.ling_cha_mount.stack; + +import java.util.HashMap; +import java.util.Map; +import java.util.Stack; + +public class Num496 { + public int[] nextGreaterElement(int[] nums1, int[] nums2) { + Stack stack = new Stack<>(); + Map map = new HashMap<>(); + for (int j : nums2) { + while (!stack.isEmpty() && stack.peek() < j) { + map.put(stack.pop(), j); + } + stack.push(j); + } + for (int i = 0; i < nums1.length; i++) { + nums1[i] = map.getOrDefault(nums1[i], -1); + } + return nums1; + } +}