线性表专栏导览:数组与链表从原理到 LeetCode 面试通关

专栏定位

本专栏面向有一定编程基础、正在备战技术面试的工程师。目标是帮助读者真正理解线性表的底层原理,而非死记硬背题目套路。每道题的讲解都遵循”是什么 → 为什么 → 怎么做 → 边界与变体”的推导链,力求做到通俗易懂又有深度。

讨论范围严格限定:数组(Array)与单链表(Linked List),不涉及栈、队列、树、图等其他结构。


专栏目录

序号文章标题核心话题覆盖 LeetCode 题目
01线性表全景:数组与链表的本质与工程权衡顺序存储 vs 链式存储、时间空间复杂度分析概念篇,无具体题目
02数组双指针:原地修改数组的核心范式同向双指针、对撞双指针、原地写回Remove Duplicates from Sorted Array I/II、Remove Element
03数组二分搜索变体:旋转数组与中位数二分不变量、边界条件、有序性利用Search in Rotated Sorted Array I/II、Median of Two Sorted Arrays
04哈希表与连续序列:Two Sum 与 Longest Consecutive Sequence空间换时间、哈希冲突、并查集Two Sum、Longest Consecutive Sequence
05多指针夹逼:3Sum、3Sum Closest、4Sum 系列排序+双指针夹逼、去重逻辑、k-Sum 归约3Sum、3Sum Closest、4Sum
06全排列与字典序:Next Permutation、Permutation Sequence、Gray Code字典序生成、阶乘数系、格雷码递推Next Permutation、Permutation Sequence、Gray Code
07矩阵数组专题:旋转、置零与数独校验原地旋转技巧、行列标记、位图压缩Rotate Image、Set Matrix Zeroes、Valid Sudoku
08贪心策略:雨水、加油站与糖果分发贪心正确性证明、单调栈、两次扫描Trapping Rain Water、Gas Station、Candy
09动态规划与位运算:爬楼梯、进位与异或DP 状态转移、大数加法、位掩码技巧Climbing Stairs、Plus One、Single Number I/II
10链表基础与哑节点技巧:删重与分区哑节点消除边界、两路分区合并Remove Duplicates from Sorted List I/II、Partition List
11链表快慢指针:环检测、倒数节点与旋转Floyd 判圈、入环点定位、步差法Linked List Cycle I/II、Remove Nth Node From End of List、Rotate List
12链表反转艺术:局部反转、k 组翻转与节点交换迭代三指针反转、递归反转、分组边界Reverse Linked List II、Reverse Nodes in k-Group、Swap Nodes in Pairs
13链表综合运用:大数加法、重排、随机指针与 LRU 缓存进位模拟、中点分割、深拷贝哈希、哈希+双向链表Add Two Numbers、Reorder List、Copy List with Random Pointer、LRU Cache

专栏阅读建议

  1. 按顺序阅读:前两篇是概念基础,后续各篇均有交叉引用,跳读容易丢失上下文
  2. 亲自动手:每篇讲解完后,强烈建议先不看代码,自己在 LeetCode 上独立实现一遍
  3. 关注推导过程:本专栏不追求”背答案”,而是强调为什么这样想,帮助举一反三

参考范围

本专栏题目选取范围与《LeetCode 题解》第 2 章线性表保持一致,共覆盖:

  • 数组题目:2.1.1 ~ 2.1.24,共 24 道
  • 单链表题目:2.2.1 ~ 2.2.14,共 14 道

合计 38 道高频面试题,覆盖 Google、Meta、Amazon、字节跳动、阿里等一线大厂高频考点。


排序与查找专题(第二辑)

本专题严格聚焦于线性表上的排序算法查找算法,不涉及其他数据结构。题目来源对应《LeetCode 题解》第 6 章(排序)与第 7 章(查找)。

专题目录

序号文章标题核心话题覆盖 LeetCode 题目
14排序算法原理全景:归并、插入、计数与桶排序的底层逻辑排序算法分类、时间/空间复杂度横向对比、稳定性分析、面试选型决策概念篇,无具体题目
15归并排序实战三连:数组合并与有序链表合并归并分治框架、原地归并的空间陷阱、多路归并的优先队列实现Merge Sorted Array、Merge Two Sorted Lists、Merge k Sorted Lists
16链表排序双题精讲:插入排序与自底向上归并排序链表插入排序的指针管理、链表归并排序的递归与迭代实现、O(1) 空间约束Insertion Sort List、Sort List
17创意排序:荷兰国旗问题与桶排序思想三路快排思想、DNF 算法、鸽巢原理、桶的下界证明Sort Colors、First Missing Positive
18二分查找核心模板:插入位置与区间搜索二分的四大模板、左闭右开不变量、重复元素的左右边界锁定Search Insert Position、Search for a Range
19二维有序矩阵查找:从暴力到 O(m+n) 的跨越矩阵行列单调性利用、Z 字形搜索、二分降维、坐标压缩视角Search a 2D Matrix

专题阅读建议

  1. 先读 14 篇:理解各排序算法的「性格特点」,后续题目的解法选型才有根基
  2. 排序篇(15-17):重点理解每道题为何选用当前排序算法,而非强行套模板
  3. 查找篇(18-19):二分查找的核心在于不变量维护,建议在纸上推导边界条件再看代码
  4. 本专题不覆盖:旋转数组二分查找(见第 03 篇)、哈希表查找(见第 04 篇)