leetcode 11. 盛最多水的容器 双指针问题!!!!!

tech2024-10-13  26

 

l=0 ,r=n-1.  所以面积等于(r-l)*min(hei[i],hei[j])

之后移动较小的那一边。

 

class Solution { public:     int maxArea(vector<int>& height) {         int size = height.size();         if(size<=1) return -1;         int i=0,j=size-1;         int maxArea=0,newArea=0;         while(i<j){             //计算新面积             newArea=min(height[i],height[j])*(j-i);             //比较             maxArea=max(maxArea,newArea);             //移动短的边             if(height[i]<height[j])                 i++;             else                 j--;         }         return maxArea;     } };  

最新回复(0)