思路:双指针法
- 初始:左指针l指向height[0],右指针r指向height[l-1]
- 当前的容量=min(height[l],height[r])*(r-l)
- 移动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