1.题目
2.双指针法
[1, 8, 6, 2, 5, 4, 8, 3, 7]
一开始,左右指针分别指向数组两端,可以容纳的水为min(1,7)*8=8
因为容纳的水量由两个指针指向的数字中较小值*指针之间的距离巨顶
所以应该移动数字较小的那个指针
class Solution {
public:
int maxArea(vector<int>& height) {
int l=0,r=height.size()-1;//左右指针
int ans=0;//最终结果
while(l<r){
int area=min(height[l],height[r])*(r-l);
ans=max(ans,area);
if(height[l]<=height[r]){
l++;
}
else{
r--;
}
}
return ans;
}
};