首页 > 其他 > 详细

计算直方图中最大矩形面积

时间:2015-10-13 00:00:08      阅读:344      评论:0      收藏:0      [点我收藏+]

题目是计算直方图中的最大矩形面积,下面是我的做法,我在网上也看到有人说可以通过栈的方式来解决,因为时间问题,并没有马上尝试,下回有时间在尝试下吧!!

还有这题有变式:计算矩阵中最大的矩形面积,其中矩阵中元素只能为1和0,代码下次补发吧!!

 

代码如下:

#include<iostream>
using namespace std;

int maxSquare(const int pos,const int n,const int height[])
{

if(n==1)
return height[0];

int square=0;
for(int i=pos;i<n;i++)
{
int count=1,temp_square=0;
int j=i-1;
while(j>=0)
{
if(height[j--]>=height[i])
count++;
else
break;
}
j=i+1;
while(j<n)
{
if(height[j++]>=height[i])
count++;
else
break;
}
temp_square=count*height[i];

if(temp_square>square)
square=temp_square;
}
return square;
}

int main()
{

int square,n,temp;
int height[100000];
cin>>n;
for(int i=0;i<n;i++)
{
cin>>temp;
height[i]=temp;
}
square=maxSquare(0,n,height);
cout<<square<<endl;
return 0;
}

计算直方图中最大矩形面积

原文:http://www.cnblogs.com/romantic-Right/p/4873150.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!