Explain monotonic stacks.
Skip to solutionKEEP THE
mediumDSA
What is a monotonic stack and when do you use it?
786 views
01
Understand the problem
stackmonotonic
02
Attempt it yourself
Sketch your approach before reading the solution — that's what interviews test.
Nudge consolestandby
Stuck? Beam a request up — the console returns a conceptual nudge that guides your logic without spoiling the implementation.
03
Study the solution
A monotonic stack keeps elements in increasing or decreasing order, popping violators as you push. It solves 'next/previous greater or smaller element' problems — like daily temperatures or stock spans — in O(n), since each element is pushed and popped once.
Solution ready — 2 min read
Classified // press E to declassify
04
Read the code
Daily temperatures (next greater)
Run Playgrounddef 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.
Transmission complete // awaiting log
KEEP THE
STREAK ALIVE.
Dossier 49 of 127 decoded in the Data Structures & Algorithms track. One more won't hurt.