原本想o(n2)遍历的,结果超时了,果然没这么简单就解决。
class Solution {
public:
int s(vector<int> height,int i,int j){
int s1=min(height[i],height[j])*(j-i);
return s1;
}
int maxArea(vector<int>& height) {
int max=0,i=0,j=height.size()-1;
int x=height[i],y=height[j];
while(i!=j){
int tem=s(height,i,j);
if(tem>max){
max=tem;
x=height[i];
y=height[j];
}
if(height[i]<height[j]){
i++;
while(height[i] < x && i<j) i++;
}else{
j--;
while(height[j] <y && i<j) j--;
}
}
return max;
}
};
结果: