Given n non-negative integers a1, a2, …, an , where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0). Find two lines, which together with x-axis forms a container, such that the container contains the most water.
Note: You may not slant the container and n is at least 2.
解析:最宽的容器是候选者,因为它的宽度最大;所有其他容器不是那么宽,因此需要更高的桶来盛更多的水;移除高度较低的板子不会对结果产生影响
class Solution {
public:
int maxArea(vector<int>& height) {
int lo=0;
int hi=height.size()-1;
int ans=0;
while(lo<hi){
int temp = min(height[lo],height[hi])*(hi-lo);
if(ans < temp){
ans = temp;
}
if(height[lo] < height[hi]){
lo++;
}
else{
hi--;
}
}
return ans;
}
};