动画:什么是单调栈?
16lz
2021-01-22
定义
小伙伴们都应该非常熟悉栈,栈的一个很鲜明的性质就是:先进后出 。
而所谓 单调栈 则是在栈的 先进后出 基础之上额外添加一个特性:从栈顶到栈底的元素是严格递增(or递减)。
具体进栈过程如下:
对于单调递增栈,若当前进栈元素为
e
,从栈顶开始遍历元素,把小于e
或者等于e
的元素弹出栈,直接遇到一个大于e
的元素或者栈为空为止,然后再把e
压入栈中。对于单调递减栈,则每次弹出的是大于
e
或者等于e
的元素。
例子
以 单调递增栈 为例进行说明。
现在有一组数
3,4,2,6,4,5,2,3
让它们从左到右依次入栈。
具体过程如下:
更多相关文章
- 故事:唐三藏西行之网络原理通信全过程
- 动画:面试必刷之二维数组中查找一个元素
- 【代码实战】华为应用市场专家在线直播AppGallery Connect 服务
- 前 K 个高频元素告诉你桶排序有啥用
- 可视化神器 Plotly Express 合并到 Plotly,安装过程有点小尴尬
- Python办公自动化|光速对比并提取两份Word/Excel中的不同元素
- 动画:用动画给面试官解释 TCP 三次握手过程
- 动画:用动画给女朋友讲解 TCP 四次分手过程
- 动画: 快速排序 | 如何求第 K 大元素?