Next Greater Element

Stack / Queues Monotonic Stack Medium
  • This type of problem is directly applicable in the field of data analysis or processing, where efficient computation and extraction of future values based on current values are required
  • Utilizing such algorithms can assist in identifying trends or making predictions in time series data
  • For instance, in financial technology applications, this problem can be used to detect the next high point of a given stock's price

Given an array arr of size n containing elements, find the next greater element for each element in the array in the order of their appearance.


The next greater element of an element in the array is the nearest element on the right that is greater than the current element.


If there does not exist a next greater element for the current element, then the next greater element for that element is -1.

Examples:

Input: arr = [1, 3, 2, 4]

Output: [3, 4, 4, -1]

Explanation: In the array, the next larger element to 1 is 3, 3 is 4, 2 is 4 and for 4 is -1, since it does not exist.

Input: arr = [6, 8, 0, 1, 3]

Output: [8, -1, 1, 3, -1]

Explanation: In the array, the next larger element to 6 is 8, for 8 there is no larger elements hence it is -1, for 0 it is 1 , for 1 it is 3 and then for 3 there is no larger element on the right and hence -1.

Input: arr = [1, 3, 2]

Constraints

  •   1 ≤ n ≤ 105
  •   0 ≤ arr[i] ≤ 109

Hints

  • A decreasing stack (monotonic decreasing order) helps efficiently track elements whose next greater element is yet to be found. Traverse the array from right to left
  • Maintain a stack of elements, ensuring the top element is always greater than the current element.

Company Tags

Electronic Arts Wayfair Etsy Morgan Stanley Micron Technology Chewy KPMG Rakuten Teladoc Health Riot Games Texas Instruments OYO Rooms Robinhood Airbnb Twilio JPMorgan Chase Seagate Technology Freshworks Rockstar Games Snowflake Reddit Red Hat Databricks NVIDIA AMD Google Microsoft Amazon Meta Apple Netflix Adobe