单调栈(初级)
Poj2559 题目大意:给出一个柱形统计图(histogram), 它的每个项目的宽度是1, 高度和具体问题有关。 现在编程求出在这个柱形图中的最大面积的长方形。可以通过维护一个高度始终单调递增的矩形序列来解决。具体来讲,我们建立一个栈,用来保存若干个矩形,这些矩形的高度是单调递增的,我们从左到右依次扫描每个矩形:如果当前矩形比栈顶矩形高,直接进栈;否则不断取出栈顶,直至栈为空或者栈顶矩形的高度比当前矩形小。在出栈过程中,我们累计被弹出的矩形的宽度之和,并且每弹出一个矩形,就用他的高度和宽度去更
原创
2022-04-18 13:55:55 ·
160 阅读 ·
0 评论