当前位置:   article > 正文

11.盛水最多的容器

11.盛水最多的容器

思路:用两个变量标记头和尾的位置,得到一个结果后,从高度最小的一端向中间靠近,只有下一个高度比此点处的高度高才有可能超过当前面积,然后比较得到的结果与先前结果,取较大的结果即可

class Solution {
public:
    int maxArea(vector<int>& height) {
        if(height.size()==0)
           return 0;
        int result=0;//记录结果
        int i=0;//左标点
        int j=height.size()-1;//右标点
        int mid=0;
        while(i<j)
        {
            mid=min(height[i],height[j]);
            if(mid*(j-i)>result)
                result=mid*(j-i);
            if(height[i]<height[j])
               while(i<j&&height[i]<=mid)
                   ++i;
            else
                while(i<j&&height[j]<=mid)
                   --j;
        }
        return result;
    }
};
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/146297
推荐阅读
相关标签
  

闽ICP备14008679号