题目:

解析
从题目可以看出来,水的体积 :
大致思路 : 存在一个变量 max 记录出现过的最大体积, 然后开始移动指针,并记录每一次的V,大于max则更新.
移动指针的规则: 总是移动柱高小的一边的位置. 如果左柱高度小于右柱高度,则 left++,反之 right--;
为何是移动小的一边?
比如左柱下标2,高度4,右柱下标5,高度是6. 那么
所以,L是随着遍历越来越小, min(4,6)要变大只能提高下限
Java实现
public class Solution{
public int maxArea(int[] height) {
int l = 0;
int r = height.length-1;
int max = (r-l) * Math.min(height[l],height[r]);
while( r-l > 0 ){
if(height[l] > height[r]){
r--;
}else{
l++;
}
max = Math.max(max,Math.min(height[l],height[r])*(r-l));
}
return max;
}
}