摘要: 题目大意:给出一个柱形统计图(histogram), 它的每个项目的宽度是1, 高度和具体问题有关。 现在编程求出在这个柱形图中的最大面积的长方形。例如:7 2 1 4 5 1 3 37表示柱形图有7个数据,分别是 2 1 4 5 1 3 3, 对应的柱形图如下,最后求出来的面积最大的图如右图所示。思路:求矩形面积就是要知道宽和高,我们以每一个小矩形为高向两边扩展(扩展到l 和 r),则面积就为h*(r - l);对于前面矩形比我当前扫到点要高,那么这个矩形的 l 必定是前一个矩形的 l .所以我们可以用单调栈维护;正着扫一遍可以得到所有的 l ; 倒着扫一遍得到所有的 r ;详见代码:Vie 阅读全文
posted @ 2013-04-05 22:20 gray035 阅读(222) 评论(0) 推荐(0) 编辑