原题出处:https://leetcode.cn/leetbook/read/top-interview-questions-hard/xw6oqi/
解法一:
class Solution:
def maxArea(self, height: List[int]) -> int:
l = len(height)
left,right = 0,l-1
result = 0
while left < right:
w = right - left
tmp_height = min(height[left],height[right])
result = max(result,w*tmp_height)
if height[left] > height[right]:
right -= 1
else:
left += 1
return result
思路:双指针思路,创建左右指针,分别记录水桶的两端,那么当前水桶中能够存储的水最大值就是,值小的那端乘以当前两端的距离,并将当前的最大值比较保存,然后比较两端的大小,如果左边大就将右端往左移,反之左边往右移,依次遍历,当左指针不大于右指针时,结束遍历。最后返回最大值即可。