思路:双指针法

  1. 初始:左指针l指向height[0],右指针r指向height[l-1]
  2. 当前的容量=min(height[l],height[r])*(r-l)
  3. 移动height[l]和height[r]中较小值对应的指针,因为容器的宽度(r-l)会随着左右指针的相互靠近不断减小,若移动较大值对应的指针,不会得到更大的容量。
class Solution:
    def maxArea(self, height: List[int]) -> int:
        #双指针法
        left = 0 
        right = len(height)-1
        max_area = 0
        while left < right:
            width = right - left
            area = min(height[left],height[right])*width
            if area > max_area:
                max_area = area
            if height[left] <= height[right]:
                left += 1
            else:
                right -= 1
        return max_area