求最大面积

Container With Most Water

 Total Accepted: 15862 Total Submissions: 50802My Submissions

 

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.

 

int maxArea(vector<int> &height) {
         // Start typing your C/C++ solution below
        // DO NOT write int main() function
        int i = 0;
        int j = height.size() - 1;
        
        int ret = 0;
        while(i < j)
        {
            int area = (j - i) * min(height[i], height[j]);
            ret = max(ret, area);
            
            if (height[i] <= height[j])
                i++;
            else
                j--;
        }
        
        return ret;
    }

 

posted @ 2014-09-07 15:22  山是水的故事  阅读(120)  评论(0编辑  收藏  举报