双指针法
i从0开始往右边移动,j从最右往左移动。
如果i对应的板子比j对应的高,那么往右移动i只可能让面积越来越小,因为距离变小了,并且短板的高度不可能变大。所以此时就要把j往左边移动才可能得到更大的答案。
class Solution {
public:
int maxArea(vector<int>& height) {
int i=0,j=height.size()-1;
int ans=0,a;
while(i!=j){
a = min(height[i],height[j])*(j-i);
ans = max(ans,a);
if(height[i]<height[j]) ++i;
else --j;
}
return ans;
}
};