Monotonic stack
一、monotonic stack的含义
1、使栈中的元素维持一定的次序,比如自栈底到栈顶递增或者递减
二、如何实现monotonic stack?
由于栈的操作只有push
、pop
、top
,无法进行swap,因此对于当使用栈进行排序的时候,一般采用的是如下方式:
1、坚持"monotonic order",即保持当前stack中的element的"monotonic order",一旦,待push
的element和top
之间不满足"monotonic order",那么就需要将当前stack中待push
的element不满足"monotonic order"的元素全部"pop"掉。
三、monotonic stack的优势:
1、能够保证相对顺序,比如"All-nearest-smaller-values"、"下一个更大元素-Next Greater Number"