leetcode 11. 盛最多水的容器
本题是双指针问题,最开始i指针和j指针分别指向最左侧和最右侧
盛水的面积是(j-i)*Math.min(height[i],height[j])
当指针向内移动时,如果高度不变,面积会变小
当指针向内移动时,如果高度变高,面积可能会变大
我们每次选择height[i]和height[j]中较小那个,让他向内移动,看看能不能找到下一个更高的高度(选取两个高度中最矮的)
class Solution {
public int maxArea(int[] height) {
int i=0;
int j=height.length-1;
int area=0;
while(i<j){
area=Math.max(area,(j-i)*Math.min(height[i],height[j]));
if(height[i]<height[j]){
i++;
}else{
j--;
}
}
return area;
}
}