DSA Crash Course
Templates

Template: 12. MONOTONIC STACK — Next Greater Element

Mark when done:

12. MONOTONIC STACK — Next Greater Element

# =============================================================================
def next_greater_element(arr):
    n = len(arr)
    result = [-1] * n
    stack = []  # stores indices
    for i in range(n):
        while stack and arr[i] > arr[stack[-1]]:
            idx = stack.pop()
            result[idx] = arr[i]
        stack.append(i)
    return result


# =============================================================================