class Solution {
// 水的容积实际上是这一块的面积:
// S=min(a[lo],a[hi])*(hi-lo)
// 要S更大,很明显只能改变a[lo],a[hi]中较小的一个:对于hi-lo,如果只是移动一位
// 那么无论是移动lo还是hi,改变都是1
// 如果改变的是较大的一个,如果改变之后,他仍然是较大的,那么由公式知它的值不会被取到
// 如果改变之后变成较小的,那么S会更小
// 只有改变较小的,S才可能更大
public int maxArea(int[] height) {
int lo=0,hi=height.length-1;
int max=0;
while(lo<hi){
int s=Math.min(height[lo],height[hi])*(hi-lo);
max=Math.max(s,max);
if(height[lo]<height[hi]){
lo++;
}else{
hi--;
}
}
return max;
}
}