📚 栈

栈的后进先出特性适合处理括号匹配、表达式解析、单调栈等场景。

5 题  ·  简单 ×1  中等 ×3  困难 ×1

# 题目 难度
20 有效的括号 简单
155 最小栈 中等
394 字符串解码 中等
739 每日温度 中等
84 柱状图中最大的矩形 困难

核心思路

  • 有效的括号:遇到左括号入栈,遇到右括号则弹出栈顶检查是否匹配;最终栈为空则合法。
  • 最小栈:维护辅助栈,每次 push 时同步记录当前最小值(min(val, minStack.top()))。
  • 字符串解码:数字与字符串分别用栈存储,遇到 [ 压栈,遇到 ] 弹栈并重复字符串。
  • 每日温度:单调递减栈,栈内存下标;遇到比栈顶温度高的天,依次弹栈并计算天数差。
  • 柱状图中最大的矩形:单调递增栈,遇到较低柱子时弹栈并以弹出柱为高度计算面积(两端哨兵简化边界)。