Practice Problem

Next Greater Element I

Difficulty: Easy

Given two arrays where nums1 is a subset of nums2, find the next greater element in nums2 for each element in nums1.

Next Greater Element I

The next greater element of some element x in an array is the first greater element that is to the right of x in the same array.

You are given two distinct 0-indexed integer arrays nums1 and nums2, where nums1 is a subset of nums2.

For each 0 <= i < nums1.length, find the index j such that nums1[i] == nums2[j] and determine the next greater element of nums2[j] in nums2. If there is no next greater element, the answer is -1.

Return an array ans of length nums1.length such that ans[i] is the next greater element for nums1[i].

Examples

Example 1:

Input: nums1 = [4, 1, 2], nums2 = [1, 3, 4, 2]
Output: [-1, 3, -1]
Explanation:
  - 4 is at index 2 in nums2. No greater element to its right → -1
  - 1 is at index 0 in nums2. The next greater element to its right is 3.
  - 2 is at index 3 in nums2. No greater element to its right → -1

Example 2:

Input: nums1 = [2, 4], nums2 = [1, 2, 3, 4]
Output: [3, -1]
Explanation:
  - 2 is at index 1 in nums2. The next greater element is 3.
  - 4 is at index 3 in nums2. No greater element to its right → -1

Constraints

  • 1 <= nums1.length <= nums2.length <= 1000
  • 0 <= nums1[i], nums2[i] <= 10^4
  • All integers in nums1 and nums2 are unique.
  • All integers of nums1 also appear in nums2.

Expected Complexity

  • Time: O(n + m) where n = nums1.length, m = nums2.length
  • Space: O(m)
EASY
Stack
Monotonic Stack
Hash Map / Dictionary
Beginner

0 views

Solution

Hints

Hint 1
Hint 2
Premium
Hint 3
Premium
Hint 4
Premium