从事实时计算多年,熟悉jstorm/spark/flink/kafka/rocketMq, 热衷于开源,希望在这里和前辈们一起学习与分享,得到长足的进步!邮箱:hustfxj@gmail.com 我的githup地址是:https://github.com/hustfxj。欢迎和大家一起交流探讨问题。
分类: C/C++
2014-04-07 11:04:29
给定n块木板A[1...n],高度记为A[i],每块目标高度不等,宽度相等,用这些木板排列成一面木板墙,木板排列好后,求解木板墙中最大的矩形面积,请设计算法求得木板墙最大的矩形面积,并分析算法效率。
举例说明,如下图所示的木板排列,最大矩形面积为深灰色区域,即4*3=12。
分析: 扫描数组,计算出每个以A[i]为高的矩形面积,再找出最大值即可。
对于A[i],分别向前和向后扫描,若高度大于等于A[i],则以A[i]为高的矩形面积加上A[i].
很显然,算法复杂度为O(n^2).
C语言实现代码如下:
点击(此处)折叠或打开
其他网友提供的O(n^2)算法
点击(此处)折叠或打开