11. Container With Most Water

来源:互联网 发布:长春网络专业人才市场 编辑:程序博客网 时间:2024/06/08 16:27

twoPoint方法,寻找容积增加的可能,排除所有容积减少的情况。例如

  1. [5,……,6]的情况,如果leftIndex++,容积可能增加;但是如果rightIndex–,那么容积不可能增加。
  2. [6,……,5]的情况,如果rightIndex–,容积可能增加;但是如果leftIndex++,那么容积不可能增加。
  3. [5,……,5]的情况,如果rightIndex–,容积不可能增加;如果leftIndex++,容积也不可能增加。
class Solution {public:    int maxArea(vector<int>& height) {        if(height.size()<2)            return 0;        int leftIndex=0;        int rightIndex=height.size()-1;        int maxArea=(rightIndex-leftIndex)*min(height[leftIndex],height[rightIndex]);        while(leftIndex<rightIndex)        {            if(height[leftIndex]<height[rightIndex])                leftIndex++;            else if(height[leftIndex]>height[rightIndex])                rightIndex--;            else            {                leftIndex++;                rightIndex--;            }            maxArea=max(maxArea,(rightIndex-leftIndex)*min(height[leftIndex],height[rightIndex]));            //cout<<maxArea<<endl;        }        return maxArea;    }};
0 0
原创粉丝点击