题目
思路
- 双指针两边逼近,能容纳水的量取决于最短的那一条边,如果 i 指向该条边,运算结束后 i++,反之 j-- 。
- 能容纳水的量=
数组长度-1
*最短那条边
代码
class Solution {
public int maxArea(int[] height) {
int max=0;
int width=height.length-1;
int i=0;
int j=height.length-1;
while(i<j){
int h;
if(height[i]<=height[j]){
h=height[i];
i++;
}else{
h=height[j];
j--;
}
if(h*width>max){
max=h*width;
}
width--;
}
return max;
}
}