public int maxArea(int[] height) {
int n=height.length;
int left=0;
int right=n-1;
int max=0;
while(left<right){
max=height[left]<height[right]?
Math.max((right-left)*height[left++],max):Math.max((right-left)*height[right--],max);
}
return max;
}
此题思路为,先定义两个指针分别指向数组左右两端,因为如果向内移动指向“较长板”的指针,围成的面积一定会小于之前的面积,而若移动指向“较短板”的指针,围成的面积可能小于也可能大于之前的面积,所以,如果我们要想找出所围面积的最大值,就一定要在每轮循环中向内移动指向较短板的指针,直至两指针相遇。