装最多水的容器
思路:
容器大小由区间长度和高度共同决定。两个指针,从左右逼近,开始的时候,区间长度最大。然后调整长度,选择合适的高度。高度由最小的柱子决定。
class Solution {
public:
/*
* @param : a vector of integers
* @return: an integer
*/
int maxArea(vector<int> heights) {
// write your code here
int n=heights.size();
if(n==1)
return 0;
int i=0,j=n-1;
int maxarea=0;
while(i<j){
maxarea=max(maxarea,min(heights[i],heights[j])*(j-i));
if(heights[i]<heights[j])
i++;
else
j--;
}
return maxarea;
}
};