这道题最好的做法是双指针,我们设置两个指针分别在开头和结尾,并记录下体积,那么当循环完一步时,我们需要移动其中一个指针,该移动哪个呢?肯定是小的那个,也就是height值小的。
class Solution:
def maxArea(self, height: List[int]) -> int:
a1,leng,l1=0,len(height)-1,0
if leng<=0:
return 0
while leng>l1:
v=min(height[l1],height[leng])*(leng-l1)
a1=max(a1,v)
if height[leng]<height[l1]:
leng-=1
else:
l1+=1
return a1
变量名称有点不好看,见谅了。