📚 今日算法学习精选
1. 栈与队列(Stack & Queue)
第三天我们认识两位”限定访问”的数据结构大师:栈和队列。它们不追求最快,只追求最守规矩。
栈(Stack) 是后进先出(LIFO, Last In First Out)的数据结构。想象一叠盘子,最后放的盘子最先被拿走。核心操作:push(压入)、pop(弹出)、peek(查看栈顶)。应用场景:函数调用栈(Function Call Stack)、括号匹配(Bracket Matching)、单调栈(Monotonic Stack)。
队列(Queue) 是先进先出(FIFO, First In First Out)的数据结构。想象排队,最早来的最先服务。核心操作:enqueue(入队)、dequeue(出队)。变种:双端队列(Deque)、循环队列(Circular Queue)、优先队列(Priority Queue)。
2. 推荐资源
- Deque应用详解:https://blog.csdn.net 搜索”单调栈”有大量优质题解
- 力扣(LeetCode)栈与队列标签 — 找”有效的括号”“最短路径”等经典题
- 《大话数据结构》 — 中文写得通俗易懂,适合入门
3. 学习技巧
遇到括号匹配、表达式求值、滑动窗口最大值这类题,第一反应应该是用栈/队列。能用单调栈(Monotonic Stack)的题一旦看出来,$O(n)$ 解法简洁优雅,这才是刷题的乐趣所在。
数据结构基础打牢,高级算法才能游刃有余!