题目链接
java
class Solution {
public int maxArea(int[] height) {
int res = 0;
for (int i = 0, j = height.length - 1; i < j; ) {
res = Math.max(res, Math.min(height[i], height[j]) * (j - i));
if (height[i] < height[j]) {
i++;
} else {
j--;
}
}
return res;
}
}
小结:思路十分巧妙,总是移动较小的那条边,因为如果保持较小的边不变,无论另一条边如何移动,都不能存储更多水量。