{ height: number[] }
1left = 0, right = 11 (n = 12)2leftMax = 0, rightMax = 0, water = 03while left < right:4 if height[left] <= height[right]: → 0 <= 15 leftMax = max(leftMax, height[left])6 water += leftMax - height[left]7 left++8 else:9 rightMax = max(rightMax, height[right])10 water += rightMax - height[right]11 right--12return water
1function trap(height: number[]): number {2 let left = 0, right = height.length - 1;3 let leftMax = 0, rightMax = 0, water = 0;4 while (left < right) {5 if (height[left] <= height[right]) {6 leftMax = Math.max(leftMax, height[left]);7 water += leftMax - height[left];8 left++;9 } else {10 rightMax = Math.max(rightMax, height[right]);11 water += rightMax - height[right];12 right--;13 }14 }15 return water;16}