Container With Most Water -- LeetCode 11

Posted on 2016-04-12 14:51  徐岩  阅读(105)  评论(0)    收藏  举报

Given n non-negative integers a1a2, ..., an, where each represents a point at coordinate (iai). n vertical lines are drawn such that the two endpoints of line i is at (iai) 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 1:

class Solution 
{
public:
    int maxArea(vector<int>& height) 
    {
        int v = INT_MIN, area;
        int start = 0, end = height.size() - 1;
        while(start < end)
        {
            area = min(height[start], height[end]) * (end - start);
            v = max(v, area);
            if(height[start] < height[end]) ++start;
            else --end;
        }
        return v;
    }
};