ANY TWO WALLS HOLD WATER: THE WIDTH BETWEEN THEM TIMES THE SHORTER WALL. PUT ONE POINTER AT EACH END AND PINCH INWARD, ALWAYS RETIRING THE SHORTER WALL.
THE SHORTER WALL CAPS THE WATER, SO MOVING THE TALLER ONE ONLY LOSES WIDTH FOR NO GAIN. RETIRE THE SHORTER WALL INSTEAD, AND A TALLER ONE MIGHT TAKE ITS PLACE.
BLUE L AND PINK R START AT THE ENDS. EACH STEP MULTIPLIES THE WIDTH BY THE SHORTER WALL. GOLD MARKS THE BEST PAIR.
1def max_area(heights):2 l = 03 r = len(heights) - 14 max_water = 05 while l < r:6 max_water = max(max_water, (r - l) * min(heights[l], heights[r]))7 if heights[l] < heights[r]:8 l += 19 else:10 r -= 111 return max_water
EACH STEP RETIRES ONE END, SO THE TWO POINTERS MEET AFTER AT MOST N MOVES.
JUST TWO INDICES AND THE BEST AREA SO FAR.