class Solution:
def maxArea(self, height):
point1=0
point2=len(height)-1
tmp=0
while(point1 <= point2):
h=min(height[point1],height[point2]) #高为较短的那一边
tmp=max(((point2-point1)*h),tmp)
if height[point1] < height[point2]:
point1=point1+1
else:
point2=point2-1
return tmp
思路:双指针法
如果是使用遍历每一种面积的方法,那么,复杂度将达到n^2,增加了许多不必要的计算是原因之一,那么如何来减少不必要的计算呢?也就是减少那些明明面积更小,但是却任然去计算的面积。考虑面积s=x*h(x为底,h为高)在双指针都设置在数组头部,确定一个指针,让另一个指针遍历时,x不断增大,h是不定的,无论h是增大还是减小,都不能确定s,所以导致了s大小是不定的。但是如果将双指针定在数组的两头,从两头往里走,那么x将减小,此时选择大的那一边不变,让小的那一边往里走,才有可能找到更大的s。即在x减小时,h要增大。