beats91%
算法思想,设一个left指针指向数组最左边和一个right指针指向数组最右边,计算他们之间的容量为height[left]和height[right]中较小者乘以宽度right-left,然后移动指针,移动指针后宽度变小,要使容量增大,必须height增加,所以移动height较小的指针,时间复杂度为O(N)
public class Solution {
public int maxArea(int[] height) {
int left,right;
int max=0;
int curArea;
int lowIndex;
left=0;right=height.length-1;
while(left<right){
int width=right-left;
if(height[left]<=height[right]){
lowIndex=left;
left++;
}
else{
lowIndex=right;
right--;
}
curArea=height[lowIndex]*width;
if(curArea>max)
max=curArea;
}
return max;
}
}