以每个宽度为一的矩形为起点,寻找包含此矩形的最初最大矩形。
然后比较各个最初最大矩形得到最终最大矩形
以下为我的代码:
#include <iostream>
#include <math.h>#include<algorithm>
#include<iostream>
#include<cstring>
#include <cstdio>
using namespace std;
int main(){
int n,a[1001];
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
int high,maxs,result=0;
for(int i=0;i<n;i++){
high=a[i];
maxs=high;
for(int j=i+1;j<n;j++){
if(high>a[j]){
high=a[j];
}
if(maxs<high*(j-i+1)){
maxs=high*(j-i+1);
}
}
if(result<maxs){
result=maxs;
}
}
cout<<result;
return 0;
}