Explain water trapping.
01
01
Understand the problem
arraystwo-pointers
02
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
03
Study the solution
The solution is waiting
Give it an honest attempt first — then compare your thinking with the full walkthrough.
04
04
Read the code
Two-pointer water trapping
Run Playgrounddef trap(height):
l, r = 0, len(height) - 1
left_max = right_max = total = 0
while l < r:
if height[l] < height[r]:
left_max = max(left_max, height[l])
total += left_max - height[l]
l += 1
else:
right_max = max(right_max, height[r])
total += right_max - height[r]
r -= 1
return total
# --- demo ---
print(trap([0, 1, 0, 2, 1, 0, 1, 3, 2, 1, 2, 1])) # 605
05
Join the discussion
Discussion (0)
Sign in to join the discussion.
No responses yet. Be the first to share what you think.