您的位置:首页 > 其它

(牛客)直方图内最大矩形

2017-01-02 17:09 169 查看


题意数学统计上常见的柱状图,找出图中矩形面积最大值。

动态规划。。感觉数据好水。宽度才500

Mycode

class MaxInnerRec {
public:
int countArea(vector<int> A, int n) {
// write code here
int dp
;
dp[0]=A[0];
int maxn=0;
for(int i=0;i<n;i++){
int l,r;l=r=i;
//以A[i]为高的矩形最大面积
//并找出i=0->n最大的面积maxn
if(i+1<n)
for(int j=i+1;j<n;j++){
if(A[j]>=A[i]) r++;
else break;
}
if(i-1>=0)
for(int j=i-1;j>=0;j--){
if(A[j]>=A[i]) l--;
else break;
}
maxn=max(maxn,(r-l+1)*A[i]);
}
//比较A[i],dp[i-1],maxn找最大值
for(int i=1;i<n;i++){
dp[i]=max(max(dp[i-1],A[i]),maxn);
}
return dp[n-1];
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  动态规划