题目链接:https://leetcode.com/problems/container-with-most-water/
代码
class Solution:
def maxArea(self, height: List[int]) -> int:
max_area,l=0,len(height)
left,right=0,l-1
while left<right:
cur_area=(right-left)*min(height[left],height[right])
if cur_area>max_area :
max_area=cur_area
if height[left]>height[right]:
right=right-1
else:
left=left+1
return max_area
思路详解
基本思路:水量大小由短板决定。设置两个指针,一个从头,一个从尾,向中间进行扫描,一次移一边,找到比当前长的柱子。具体如下:
直到两指针相遇。最多的水量就是可容纳的最多水量。