📚 今日算法学习精选
1. 数组与链表(Array vs Linked List)
第二天我们聊数据结构的两大基石:数组和链表。这两兄弟是几乎所有高级数据结构的”底层零件”,必须烂熟于心。
数组(Array) 连续内存存储,支持 $O(1)$ 随机访问(Random Access),但插入/删除操作是 $O(n)$,因为要搬移元素。
链表(Linked List) 节点散落各处,通过指针相连。插入/删除是 $O(1)$,但查找是 $O(n)$,只能从头扫到尾。
核心区别: 数组查快改慢,链表改快查慢。记住这个口诀,很多题目就知道该用谁了。
2. 推荐资源
- CS61B(UC Berkeley) — 数据结构与算法经典课程,YouTube免费,B站也有搬运
- 《算法(第4版)》Robert Sedgewick — 代码实现清晰,配有大量图表
- Linked List可视化:https://visualgo.net/en/list
3. 实战建议
找几道经典题练手:反转链表(Reverse Linked List)、删除链表倒数第N个节点(Remove Nth Node From End of List)、合并两个有序链表(Merge Two Sorted Lists)。这些是链表”三件套”,面试高频。
每天进步一点点,量变引起质变!