一个核心的思想是,底边与高共同决定面积,那么使用双指针,指向两端,获得最大底边。由于短板决定最大面积,因此只有移动短板才有可能获得更大面积。因此总是移动短板的指针。
class Solution(object):
def maxArea(self, height):
"""
:type height: List[int]
:rtype: int
"""
lp=0
rp=len(height)-1
area=0
while lp<rp:
cur=min(height[lp],height[rp])*(rp-lp)
area=max(cur,area)
if height[lp]<height[rp]:
lp+=1
else:
rp-=1
return area