leetcode 11. 盛最多水的容器
static
//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
public int maxArea(int[] heightArr) {
int leftPos = 0;
int rightPos = heightArr.length - 1;
int maxArea = 0;
int maxHeight = 0;
int leftHeight = heightArr[leftPos];
int rightHeight = heightArr[rightPos];
while (leftPos < rightPos) {
// 矩形高度是左右两根柱子的较小值
int height = Math.min(leftHeight, rightHeight);
if (height > maxHeight) {
// 只有矩形高度增加了, 面积才有可能增加
maxArea = Math.max(maxArea, height * (rightPos - leftPos));
}
// 把较小的柱子索引往中间移动
if (leftHeight <= rightHeight) {
leftHeight = heightArr[++leftPos];
} else {
rightHeight = heightArr[--rightPos];
}
}
return maxArea;
}
}
//leetcode submit region end(Prohibit modification and deletion)


![leetcode 11. 盛最多水的容器 [java][双指针] leetcode 11. 盛最多水的容器 [java][双指针]](http://www.mshxw.com/aiimages/31/659349.png)
