堆疊是後進先出 (LIFO) 的資料結構。在演算法中,堆疊常用於需要「匹配」或「追蹤最近狀態」的場景,例如括號匹配、單調堆疊等。
Notes:
- 看到「最近的」、「匹配的」關鍵字,考慮用 Stack
- 單調堆疊 (Monotonic Stack) 可在 O(n) 內解決「下一個更大元素」類型問題
跨倉庫導讀#
- 對應理論章節:線性資料結構 ↗
#20
Valid Parentheses
#22
Generate Parentheses
#71
Simplify Path
#84
Largest Rectangle in Histogram
#150
Evaluate Reverse Polish Notation
#155
Min Stack
#225
Implement Stack Using Queues
#394
Decode String
#402
Remove K Digits
#456
132 Pattern
#682
Baseball Game
#735
Asteroid Collision
#739
Daily Temperatures
#853
Car Fleet
#895
Maximum Frequency Stack
#901
Online Stock Span
#946
Validate Stack Sequences
#1209
Remove All Adjacent Duplicates In String II
#2390
Removing Stars From a String