1. 双指针法. 这种方法背后的思路在于,两线段之间形成的区域总是会受到其中较短那条长度的限制。此外,两线段距离越远,得到的面积就越大。
2. 如果我们试图将指向较长线段的指针向内侧移动,矩形区域的面积将受限于较短的线段而不会获得任何增加。但是,在同样的条件下,移动指向较短线段的指针尽管造成了矩形宽度的减小,但却可能会有助于面积的增大。
class Solution {
public:
int maxArea(vector<int>& height) {
int i=0;
int j=height.size()-1;
int res=0;
while(i<j)
{
int temp1=min(height[i],height[j]);//容量由最小的决定
int temp2=temp1*(j-i);
res=max(res,temp2);
if(height[i]<height[j])
i++;
else j--;
}
return res;
}
};