题目:11. 盛最多水的容器
思路:双指针。
左指针初始化为数组最左侧,右指针初始化为数组最右侧。计算左右指针包含的区间最大面积并更新结果,然后收缩其中高度较小的指针。
代码:
class Solution {
public int maxArea(int[] height) {
int left = 0;
int right = height.length - 1;
int maxarea = 0;
while (left < right) {
maxarea = Math.max(maxarea, (right - left) * Math.min(height[left], height[right]));
if (height[left] > height[right]) {
right--;
}
else {
left++;
}
}
return maxarea;
}
}