您的位置:首页 > 大数据 > 人工智能

11. Container With Most Water

2016-10-27 16:29 197 查看
贪心算法,设两个指针left和right,如果有可能使面积变大的话就更新指针向内收缩。

其实个人觉得可能不是很优……但是由于我也想不出更优的了。

一开始的想法是再设一个指针指向下限,然后判断下限是否应该移动(height[h+1/h-1]是否大于h),如果下限不移动的话判断上限是否需要移动。但是上限移动其实没有什么用……然后就涉及到很复杂的情况讨论了……还是算了……

class Solution {
public:
    int maxArea(vector<int>& height) {
       
        int left=0,right=height.size()-1;
        int maxs=0;
        
        while(left<right){
            int h=min(height[left],height[right]);
            maxs=max(maxs,h*(right-left));
            
            if(height[left]<height[right]) left++;
            else right--;
        }
        
        return maxs;
    }
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: