#include<bits/stdc++.h>
using namespace std;
const int N = 1010;
int h[N];
int f[N][N];
int main()
{
int n;
cin >> n;
for(int i=1;i<=n;i++)
cin >> h[i];
for(int i=1;i<=n;i++)
f[i][i]=h[i];
for(int i=1;i<n;i++)
{
for(int j=i+1;j<=n;j++)
{
f[i][j]=min(f[i][j-1],h[j]);
}
}
int res=0,maxn=0;
//从第i个矩形开始到第j个矩形
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
int t=f[i][j]*(j-i+1);
if(t>maxn)
maxn=t;
}
}
cout << maxn << endl;
return 0;
}
csp-最大的矩形
最新推荐文章于 2025-07-11 17:05:45 发布
该博客主要介绍了如何计算一维数组中形成的最大矩形面积。通过遍历数组并维护最小值栈,找到每个位置上能形成的矩形高度,从而求得最大矩形面积。算法复杂度为O(n)。
1101

被折叠的 条评论
为什么被折叠?



