单调栈
2022-8-22 00:0:0 Author: taxodium.ink(查看原文) 阅读量:0 收藏

单调栈即满足单调性的栈结构,插入时要保证栈的单调性。

它适合解决那些需要找到 下一个/上一个更大/小值 的问题。

按照从 栈顶到栈底 的顺序,递增则为单调递增栈,递减则为单调递减栈。

左侧为栈底,右侧为栈顶:

单调递增栈:[5,4,3,2,1]

单调递减栈:[1,2,3,4,5]

对于单调栈,在 插入 时,需要去比较入栈元素和栈顶元素的大小。

以单调递增栈为例子,要保证从栈顶到栈底是递增的关系。

入栈时,要保持栈顶的元素大于等于入栈的元素。

如果栈顶元素比入栈元素小,则将栈顶元素弹出,直到栈顶元素大于等于入栈元素,或者栈为空。


文章来源: https://taxodium.ink/monotone-stack.html
如有侵权请联系:admin#unsafe.sh