📚 栈
栈的后进先出特性适合处理括号匹配、表达式解析、单调栈等场景。
5 题 · 简单 ×1 中等 ×3 困难 ×1
| # | 题目 | 难度 |
|---|---|---|
| 20 | 有效的括号 | 简单 |
| 155 | 最小栈 | 中等 |
| 394 | 字符串解码 | 中等 |
| 739 | 每日温度 | 中等 |
| 84 | 柱状图中最大的矩形 | 困难 |
核心思路
- 有效的括号:遇到左括号入栈,遇到右括号则弹出栈顶检查是否匹配;最终栈为空则合法。
- 最小栈:维护辅助栈,每次 push
时同步记录当前最小值(
min(val, minStack.top()))。 - 字符串解码:数字与字符串分别用栈存储,遇到
[压栈,遇到]弹栈并重复字符串。 - 每日温度:单调递减栈,栈内存下标;遇到比栈顶温度高的天,依次弹栈并计算天数差。
- 柱状图中最大的矩形:单调递增栈,遇到较低柱子时弹栈并以弹出柱为高度计算面积(两端哨兵简化边界)。