Container With Most Water

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.

 

Code:

class Solution {
public:
    int maxArea(vector<int> &height) {
        if(height.empty()) return 0;
        int i=0,j=height.size()-1;
        int maxCapacity=0;
        while(i<j){
            int Capacity=min(height[i],height[j])*(j-i);
            maxCapacity=max(maxCapacity,Capacity);
            if(height[i]<height[j])
                i++;
            else
                j--;
        }
        return maxCapacity;
    }
};

 

posted @ 2013-10-31 08:46  WinsCoder  阅读(120)  评论(0编辑  收藏  举报