《征服数据结构》单调栈

摘要:

1,单调栈的介绍

1,单调栈的介绍

单调栈就是单调递增或单调递减的栈,和我们前面讲的栈是一样的,只不过单调栈中的元素具有单调性

单调栈在面试的时候用的比较多,一般在求下一个更大元素的时候都会用到单调栈,关于这方面的题也有很多。

假如给定一个数组 nums ,对于数组中的每一个元素,查找它的下一个更大的值。比如数组 2, 7, 4, 3, 5,返回的结果是 7,0,5,5,0 。因为 2 后面比它大的是 7 ,7 和 5 后面没有比它大的,所以是 0 ,4 后面比它大的是 5 ,3 后面比它大的也是 5 ,所以结果就是 7,0,5,5,0

对于这种求下一个更大元素的问题,我们首先想到的是单调栈,步骤如下:

相关推荐
牛油果子哥q2 小时前
并查集(DSU)超精讲,路径压缩、按秩合并、万能模板、连通性判定、最小生成树与刷题实战全解
数据结构·c++·最小生成树·并查集
凌波粒3 小时前
LeetCode--491.递增子序列(回溯算法)
数据结构·算法·leetcode
WL学习笔记4 小时前
单项不带头不循环链表
数据结构·链表
小糯米6014 小时前
JS 数组
数据结构·算法·排序算法
小欣加油4 小时前
leetcode3612 用特殊操作处理字符串I
数据结构·c++·算法·leetcode·职场和发展
凌波粒5 小时前
LeetCode--90.子集II(回溯算法)
数据结构·算法·leetcode
凌波粒5 小时前
LeetCode--46.全排列(回溯算法)
数据结构·算法·leetcode
吃着火锅x唱着歌5 小时前
LeetCode 2530.执行K次操作后的最大分数
数据结构·算法·leetcode
CoderYanger6 小时前
A.每日一题:2095. 删除链表的中间节点
java·数据结构·程序人生·leetcode·链表·面试·职场和发展
CoderYanger6 小时前
A.每日一题:234. 回文链表
数据结构·程序人生·leetcode·链表·面试·职场和发展·学习方法