[LeetCode]Container With Most Water

来源:互联网 发布:java 模块化开发 编辑:程序博客网 时间:2024/06/14 14:06
解题思路:
1,两条线之间的盛水量,由x坐标之 差与height较低的那个y来决定;
2,拿第1条和最后1条线来看,这个容器有最大的宽度。所以,如果还存在容量更大的容器,那么它的2条线一定比边上的两条线要高。

所以可以得到如下代码: 


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


0 0
原创粉丝点击