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.
Solution:Code:
<span style="font-size:14px;">class Solution {
public:
int maxArea(vector<int> &height) {
int begin = 0, end = height.size()-1, result = 0;
while (begin < end) {
result = max(result, min(height[begin], height[end])*(end-begin));
if (height[begin] > height[end]) {
int lastHeight = height[end--];
while (begin < end && height[end] < lastHeight) --end;
} else {
int lastHeight = height[begin++];
while (begin < end && height[begin] < lastHeight) ++begin;
}
}
return result;
}
};</span>