Practice: Trapping Rain Water

Problem: https://leetcode.com/problems/trapping-rain-water/

Recognition reminder: the water resting above each bar is bounded by the tallest wall to its left and the tallest wall to its right, whichever is shorter. Two pointers closing in from the ends, each carrying a running max of the wall it has seen, lets you settle each position in one pass. This is the hardest of the four; the invariant (you can safely fill the side whose running max is smaller) is the whole lesson.

Before you start (the five-beat rhythm)

  1. Your Pattern Card for this week is already written.
  2. Name the pattern aloud and write your approach as a plain-English comment before any code.
  3. Struggle floor: 25 minutes unaided. No hints, no AI, no Discuss tab.
  4. If stuck past the floor, ask the tutor for a hint. Six rungs, one per ask.
  5. Debrief in your commit message before moving to the next problem.

Your target

Fill these in yourself before you look at anyone else’s solution:

Target time complexity:  ____
Target space complexity: ____

There is a clear O(n) time, O(n) space solution that precomputes a left-max and right-max array for every index. There is also an O(n) time, O(1) space two-pointer solution that carries just two running maxima. Aim for the second, and be ready to say why advancing the pointer on the smaller-running-max side is always safe.

Where your code goes

Write your solution in your own work repo (see getting-started.md), not in this folder. This folder ships only the problem spec and a provided-example test (tests/test_provided.py) so you can check the given cases locally before you submit to LeetCode’s judge. The judge is the oracle; the tutor will not confirm your answer by reading it.

Debrief (paste into your commit message)

1. What pattern did this turn out to be?
2. What was the trigger phrase or input shape that should have made me reach for it?
3. What was the time and space complexity, and what would dominate at scale?
4. What edge case would have broken my first attempt?
5. What would I do differently in three days when I see this cold?