栈
栈(Stack)
常规栈:就是简单的栈操作,一般直接
pop和push操作就行了。(例题:ID-1ID-2ID-3ID-4)单调栈:栈中的元素按照一定的规则呈递增或者递减顺序排列,当出现失序时出栈。(例题:
ID-5ID-6ID-7ID-8)
栈的例题
| ID | LeetCode 题号 | 描述 | 思路 |
|---|---|---|---|
| 1 | 946. Validate Stack Sequences | 判断数组是否可以通过栈操作得到重排序的数组 | 用栈模拟 |
| 2 | 735. Asteroid Collision | 行星碰撞问题 | 用栈模拟,注意规则细节 |
| 3 | 20. Valid Parentheses | 判断括号是否合规 | 栈模拟 |
| 4 | 301. Remove Invalid Parentheses | 移除非法括号 | 栈模拟统计 + DFS,竟然没有优化方法… |
| 5 | 496. Next Greater Element I | 找到数组里对应数字比他大的下一个数字 | 严格单调递增栈 |
| 6 | 503. Next Greater Element II | 找到循环数组里对应数字比他大的下一个数字 | 严格单调递增栈 + 遍历两次 |
| 7 | 556. Next Greater Element III | 将一个数字变成比他大的最小的数字,且每位上的数字个数相同 | 模拟单调栈 |
| 8 | 402. Remove K Digits | 删掉 K 个数字后的最小数字 | 单调栈 |
| 9 | 853. Car Fleet | 不同车速的车是否能组成车队 | 按出发先后排序 + 单调栈 |
| 10 | 739. Daily Temperatures | 几天后会比今天更温暖 | 单调栈 |
| 11 | 907. Sum of Subarray Minimums | 子数组的最小值之和 | 单调栈 + 双向遍历 |
| 题 | 题 | 题 | 题 |
|---|---|---|---|
| Basic Calculator 系列 | Nested List Iterator 系列 | Decode String | Number of Atoms |
本文由作者按照 CC BY 4.0 进行授权