不想别人否定,自己就要更加努力。力扣力扣:https://leetcode-cn.com/problems/container-with-most-water/
输入:[1,8,6,2,5,4,8,3,7] 输出:49
方法:双指针
思路:双指针代表的是 可以作为容器边界的所有位置的范围。在一开始,双指针指向数组的左右边界,表示 数组中所有的位置都可以作为容器的边界。在这之后,我们每次将 对应的数字较小的那个指针 往 另一个指针 的方向移动一个位置。
答案就是我们每次以双指针为左右边界(也就是「数组」的左右边界)计算出的容量中的最大值。
class Solution {
public int maxArea(int[] height) {
int l = 0, r = height.length - 1;
int result = 0;
while(l<r){
int area = Math.min(height[r],height[l])*(r-l);
result = Math.max(result, area);
if(height[l] < height[r]){
++l;
}else{
--r;
}
}
return result;
}
}