给你n个非负整数a1,a2,....,an,每个数代表坐标中的一个点(i,ai),在左边内画
n条垂直线,垂直线i的两个端点分别为(i,ai)和(i,0),找出其中的两条线,使得他们与x轴共同构成的容器可以容纳最多的水。
注意:
你不能倾斜容器,且n的值至少为2;
图中垂直线代表输入数组[1,8,6,2,5,4,3,7]。在此情况下,容器能够容纳水
(表示为蓝色部分)的最大值为49。
示例:
输入:[1,8,6,2,5,4,3,7]
输出:49
class Solution {
public int maxArea(int[] height) {
int i = 0,j = height.length-1;
int res = 0;
while(i<j){
if(height[i] < height[j]){
res = Math.max(res,height[i] * (j-i));
i++;
}
else{
res = Math.max(res,height[j] * (j-i));
j--;
}
}
return res;
}
}
//解题思路:双指针法