11. 盛最多水的容器 - 力扣(LeetCode)
思路:
- 因为体积是长度乘高,所以运用双指针,一个在最左,一个在最右,
- 每次都记录体积 V ,然后比较左边的长度和右边的长度,左边的长度比右边短 就 left ++,右边长度比左边短,就 right --;
- 每次记录体积最大的值,然后和新算的体积比较,留下最大的值
代码:
public int maxArea(int[] height) {
int left = 0;
int right = height.length-1;
int Max_V = 0;
while(left < right){
//求出最大值
int v = Math.min(height[left],height[right]) * (right - left);
Max_V = Math.max(v,Max_V);
//移动left right
if(height[left] < height[right]){
left++;
}else{
right--;
}
}
return Max_V;
}