mediumDSA

What is a monotonic stack and when do you use it?

786 views
01

Understand the problem

Explain monotonic stacks.

stackmonotonic
02

Attempt it yourself

Sketch your approach before reading the solution — that's what interviews test.

Stuck? AI Nudge Available

Get a conceptual hint to guide your logic without spoiling the final implementation.

03

Study the solution

The solution is waiting

Give it an honest attempt first — then compare your thinking with the full walkthrough.

04

Read the code

Daily temperatures (next greater)
Run Playground
def daily_temperatures(temps):
    n = len(temps)
    answer = [0] * n
    stack = []                          # indices, temperatures decreasing
    for i, t in enumerate(temps):
        while stack and temps[stack[-1]] < t:
            j = stack.pop()
            answer[j] = i - j           # days until a warmer temperature
        stack.append(i)
    return answer


# --- demo ---
print(daily_temperatures([73, 74, 75, 71, 69, 72, 76, 73]))
# [1, 1, 4, 2, 1, 1, 0, 0]
05

Join the discussion

Discussion (0)

Sign in to join the discussion.

No responses yet. Be the first to share what you think.