栈是很基础的一种数据结构,具有后入先出(LIFO)的特性
单调栈也是一种栈,一般用于处理具有Next Greater Element特点的问题
单调递减栈
- 在一个队列中针对每一个元素从它右边寻找第一个比它大的元素
- 在一个队列中针对每一个元素从它左边寻找第一个比它大的元素(从后往前遍历)
单调递增栈
- 在一个队列中针对每一个元素从它右边寻找第一个比它小的元素
- 在一个队列中针对每一个元素从它左边寻找第一个比它小的元素(从后往前遍历)
下一个更大元素 I
模板题
1 | class Solution: |
下一个更大元素 II
同上,2个nums接起来做就行
1 | class Solution: |
每日温度
模板,只不过找的是下标之间的关系
1 | class Solution: |
链表中的下一个更大节点
链表转数组,然后模板
1 | # Definition for singly-linked list. |
商品折扣后的最终价格
单调递增栈
1 | class Solution: |