数据结构——单调栈

​​点击阅读更多查看文章内容

单调栈

定义

单调递增栈:单调递增栈就是从栈底到栈顶数据是从小到大
单调递减栈:单调递减栈就是从栈底到栈顶数据是从大到小

实现

以单调递增栈为例,向栈中推入元素时,如果栈顶元素比当前元素大,则将栈顶元素推出,直到栈顶元素比当前元素小或者栈为空,然后将当前元素推入栈中。

1
2
3
4
5
6
7
stack<int> sta;
for (遍历数组)
{
while (栈不为空 && 栈顶元素大于当前元素)
sta.pop();
sta.push(当前元素);
}

作用

找到左边(右边)第一个比当前元素小(大)的元素。

例题

LeetCode 84

作者

ShiHaonan

发布于

2021-08-03

更新于

2025-03-13

许可协议

评论