需要预处理,我们从头到底删掉不可能用的元素即可。
class Solution {
public:
int maxArea(vector<int>& height)
{
int maxn = 1000+10;
int maxNum = 0;
int lastHeightI = 0;
vector<int>HeightI;
vector<int>posI;
int lastHeightJ = 0;
vector<int>HeightJ;
vector<int>posJ;
//i
for(int i = 0;i<height.size();i++)
{
if(height[i]>lastHeightI)
{
lastHeightI = height[i];
HeightI.push_back(height[i]);
posI.push_back(i);
}
}
//j
for(int j = height.size()-1;j>=0;j--)
{
if(height[j]>lastHeightJ)
{
lastHeightJ = height[j];
HeightJ.push_back(height[j]);
posJ.push_back(j);
}
}
int sum = 0;
for(int i = 0;i<HeightI.size();i++)
{
for(int j = 0;j<HeightJ.size();j++)
{
if(posI[i]>=posJ[j]) break;
sum = max(sum,min(HeightJ[j],HeightI[i])*(posJ[j]-posI[i]));
}
}
return sum;
}
};