11. Container With Most Water

来源:互联网 发布:淘宝客服人工服务时间 编辑:程序博客网 时间:2024/06/06 12:48

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 and n is at least 2.



class Solution {

public:
    int maxArea(vector<int>& height) {
      int i=0;int j=height.size()-1;int maxa=0;
        while (i<j)
        {
            int temp=(height[i]>height[j]?height[j]:height[i])*(j-i);
            maxa=(maxa>temp?maxa:temp);
            if (height [j]<=height[i]) j--;
            temp=(height[i]>height[j]?height[j]:height[i])*(j-i);
            maxa=(maxa>temp?maxa:temp);
            if (height [i]<=height[j]) i++;
        }
        return maxa;
    }
};