单调栈
一、单调栈
1.定义
单调栈就是栈内元素保持一定单调性的栈,及从栈顶到栈尾单调递增(单调递增栈)或递减(单调递减栈);
2.性质
- 满足栈底到栈顶入栈顺序从早到晚;
- 栈中元素的大小从栈顶到栈底必须是单调递(增,减,自定义);
二、实现
对于单调递增的栈:
如果栈为空或入栈元素大于等于栈顶元素值,则入栈;否则,若入栈会破坏栈的单调性,因此需要将比入栈元素大的元素全部出栈;
对于单调递减的栈:
如果栈为空或入栈元素小于等于栈顶元素值,则入栈;否则,若入栈会破坏栈的单调性,因此需要将比入栈元素小的元素全部出栈;