给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水
思路:
采用双指针,L从前往后,R从后往右遍历,每次比较L和R的大小,将小的指针向右(向左)移动,并判断围成的面积大小。
class Solution {
public int maxArea(int[] height) {
int max = 0;
int l = 0, r = height.length-1;
while(l < r){
int h = height[r]>height[l]?height[l]:height[r];
int s = (r-l)*h;
max = s>max?s:max;
if(height[r]>height[l]){
l++;
}else{
r--;
}
}
return max;
}
}