Approach 1: Two-Pointer class Solution: def maxArea(self, height: List[int]) -> int: max_area = 0 l, r = 0, len(height) - 1 while l < r: hl, hr = height[l], height[r] area = (r - l) * min(hl, hr) if area > max_area: max_area = area if height[r] > height[l]: l += 1 else: r -= 1 return max_area Complexity Time: O(n) Space: O(1) Notes Other Languages