先用了暴力方法。。。在坐标的问题上卡了好久好久。。结果还超时。。哎呀,太菜了
回头补上双指针方法
class Solution:
def maxArea(self, height: List[int]) -> int:
ans=0
length=len(height)
for i in range(length-1):
for j in range(length-1):
ans_middle=min(height[i],height[j+1])*(j+1-i)
if ans_middle>ans:ans=ans_middle
return ans
这个双指针,真是没想到还有这种操作,感觉这种居然不会中间错过好结果,真是不容易。。。。
class Solution:
def maxArea(self, height: List[int]) -> int:
l,r,maxv,h=0,len(height)-1,0,0
#试试要不要把h先声明出来
while l<r:
if height[l]<height[r]:
h=height[l]
l+=1
else :
h=height[r]
r-=1
maxv=max(maxv,h*(r-l+1))
return maxv