《征服数据结构》单调栈

摘要:

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] 。

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

相关推荐
im_AMBER6 分钟前
Leetcode 156 旋转图像 | 矩阵置零
javascript·数据结构·算法·leetcode
papership10 分钟前
【入门级-数据结构-4、简单图:图的定义与相关概念】
数据结构·算法
计算机安禾15 分钟前
【数据结构与算法】第46篇:算法思想(一):递归与分治
c语言·数据结构·c++·算法·visualstudio·图论·visual studio code
Sirens.16 分钟前
七大经典排序算法:原理、实现与复杂度分析
java·数据结构·算法·排序算法
feng_you_ying_li35 分钟前
C++11,lambda,包装器
开发语言·数据结构·c++
山甫aa1 小时前
哈希表的变化(链表数组强化)----从零开始的数据结构
数据结构·哈希算法·散列表
Mem0rin1 小时前
[Java/数据结构]树的基本概念、二叉树的创建和遍历
java·开发语言·数据结构
我不是懒洋洋1 小时前
【经典题目】链表OJ(轮转数组、返回倒数第k个节点、链表的回文结构)
c语言·开发语言·数据结构·算法·链表·visual studio
励志的小陈1 小时前
数据结构--堆(C语言实现)
android·c语言·数据结构
Tairitsu_H16 小时前
C语言:排序(一)
c语言·数据结构·排序