单调栈

单调栈

一种重要的数据结构。

栈内维护信息的单调性,递增或递减。

对于插入一个数,如果不满足单调性,则弹出栈顶元素,一直到满足单调性或者栈为空。

应用:对于一个确定高度的矩形,可以确定它的左右边界,即向左找一个第一个比它小的位置,右边也是。

对于一个序列,寻找子序列,使得子序列中的最小值(或其他)乘它的长度(或其他)的值最大。一类的问题,都可以 O(n) 解决。

 

posted on 2018-11-08 19:27  Frank-King  阅读(161)  评论(0编辑  收藏  举报