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:
Space:

Notes

Other Languages