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.
题意:有一个高度数组,求数组中任意高度间盛水的最大量,高度间的距离与较低高度乘积即为盛水的容量。
class Solution {
public:
int maxArea(vector<int>& height) {
int n = height.size();
int l = 0;
int r = n-1;
int res = 0;
while(l<r)
{
res = max(res, min(height[l],height[r])*(r-l));
height[l]<height[r]?l++:r--;
}
return res;
}
};