思路:
设置两个指针,分别从数组的两边开始向中间遍历。由于盛水的多少是根据两边柱子较低的那一边的高度决定的,而为了找到能盛最多水的容器,需要找到两边最高的柱子,计算结果即可。(和接雨水的思路较为相似)
public int maxArea(int[] height) {
int len=height.length;
int left=0;
int right=len-1;
int res=0;
while(left<right){
int area=(right-left)*Math.min(height[left],height[right]);
res=Math.max(res,area);
if(height[left]<height[right]) left++;
else {
right--;
}
}
return res;
}