暴力解决法,但是时间可能超时,实测是50案例49个成功,一个超时,理论应该是对的
class Solution {
public:
int maxArea(vector<int>& height) {
int num = height.size();
int V = 0;
for(int i = 0; i < num; i++)
{
for(int j = 0; j < num; j++)
{
int V1 = (i-j)*(height[i]>height[j]?height[j]:height[i]);
if(V1>V)
V=V1;
}
}
return V;
}
};
其他借鉴的优化答案如下:
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;
}
};