思路:从外层开始,计算蓄水量,每次移动一格左挡板或者右挡板,移动目前较短的一个。
public class Solution {
public int maxArea(int[] height) {
int left=0;
int right=height.length-1;
int ans=(right-left)*Math.min(height[left], height[right]);
while (right>left) {
int water=(right-left)*Math.min(height[left], height[right]);
if (water>ans) {
ans=water;
}
if (height[left]<height[right]) {
left++;
}else {
right--;
}
}
return ans;
}
}