leetcode:盛水最多的容器

双指针,头尾指针每次移动较小的那个,保证有取到更大值的可能性

class Solution {
public:
    int maxArea(vector<int>& height) {
        int size=height.size();
        int i=0,j=size-1;
        int maxval=0;
        while(i<j){
            int area=(j-i)*min(height[i],height[j]);
            maxval=max(maxval,area);
            //双指针,每次移动小的
            if(height[i]<=height[j]) i++;
            else j--;
        }
        return maxval;
    }
};

 

posted @ 2023-08-05 10:31  Ojalá  阅读(10)  评论(0)    收藏  举报