AlgoMaster Logo

Next Greater Element I

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