Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

经典算法思想总结(含 LeetCode 题目推荐)

算法思想不要孤立背。面试里更有用的问法是:什么信号提示我该用它?模板里最容易错的地方在哪里?如果面试官改条件,我应该从哪个变量或状态开始调整?

这份题单按思想组织,每一类都给出“识别信号、常用模板、代表题、复盘重点”。题目数量控制在能代表模板的范围内,先把这些题讲明白,比机械刷更多题更划算。

怎么用这份题单

不要一上来就把所有题目按顺序刷完。更适合面试准备的方式是:先读对应的模板文章,确认自己能手写核心代码,再做“必刷题”,最后用“进阶题”检查边界和变体。

目标建议动作
快速建立模板先读 二分查找、双指针与滑动窗口、DFS/BFS 这些高频模板文章
补齐搜索和 DP继续读 回溯算法、动态规划,每类至少手写 2 道基础题
面试前查漏补缺用 贪心算法、Top K 问题、并查集 补齐常见变体
复盘自己的答案每题写下题型识别信号、核心变量含义、复杂度、边界样例。如果这些讲不清,说明这题还没真正掌握

二分查找

项目内容
识别信号有序数组、单调条件、找边界、找最小可行值或最大可行值
常用模板基础二分、左边界、右边界、答案二分
必刷题704. 二分查找、34. 在排序数组中查找元素的第一个和最后一个位置
进阶题35. 搜索插入位置、875. 爱吃香蕉的珂珂
复盘重点循环条件、mid 计算、边界更新后是否会死循环

双指针

项目内容
识别信号有序数组、原地修改、两端向中间收缩、链表快慢追赶
常用模板左右指针、快慢指针、读写指针
必刷题26. 删除有序数组中的重复项、977. 有序数组的平方
进阶题15. 三数之和、142. 环形链表 II
复盘重点指针含义要固定,去重条件不要漏,链表题先画 3 个节点

滑动窗口

项目内容
识别信号连续子数组、连续子串、最长/最短、窗口内满足某个条件
常用模板固定窗口、可变窗口、计数 Map
必刷题3. 无重复字符的最长子串、209. 长度最小的子数组
进阶题76. 最小覆盖子串、438. 找到字符串中所有字母异位词
复盘重点什么时候扩右边界,什么时候缩左边界,窗口内变量如何维护

DFS 与 BFS

项目内容
识别信号树遍历、图遍历、矩阵连通块、最短步数、层序遍历
常用模板递归 DFS、栈模拟 DFS、队列 BFS、层序 BFS
必刷题102. 二叉树的层序遍历、200. 岛屿数量
进阶题994. 腐烂的橘子、127. 单词接龙
复盘重点访问标记、越界判断、BFS 层数统计

回溯算法

项目内容
识别信号枚举所有方案、路径选择、组合、排列、子集、棋盘约束
常用模板路径 path、选择列表、递归层、撤销选择
必刷题77. 组合、78. 子集
进阶题39. 组合总和、51. N 皇后
复盘重点递归参数代表什么,剪枝条件放在循环前还是循环内

动态规划

项目内容
识别信号求最优值、方案数、能否到达、子序列、背包、区间合并
常用模板一维 DP、二维 DP、滚动数组、背包 DP
必刷题70. 爬楼梯、322. 零钱兑换
进阶题300. 最长递增子序列、416. 分割等和子集
复盘重点dp[i] 的含义、初始化、遍历顺序、是否能压缩空间

贪心算法

项目内容
识别信号每一步选择当前最合适的对象,常伴随排序、区间、跳跃、买卖
常用模板排序后选择、维护最远边界、区间合并/覆盖
必刷题455. 分发饼干、55. 跳跃游戏
进阶题45. 跳跃游戏 II、435. 无重叠区间
复盘重点贪心策略为什么不会错,反例能否推翻当前策略

分治算法

项目内容
识别信号问题可以拆成同类子问题,子问题结果能合并
常用模板递归拆分、子问题求解、合并结果
必刷题108. 将有序数组转换为二叉搜索树、148. 排序链表
进阶题23. 合并 K 个升序链表、215. 数组中的第 K 个最大元素
复盘重点递归出口、左右区间是否重叠、合并复杂度

拓扑排序

项目内容
识别信号课程依赖、任务依赖、有向无环图、判断是否能完成
常用模板入度数组 + 队列,或 DFS 三色标记
必刷题207. 课程表
进阶题210. 课程表 II、269. 火星词典
复盘重点入度什么时候减,结果数量是否等于节点数量

并查集

项目内容
识别信号连通性、分组、朋友圈、冗余边、等式关系
常用模板find、union、路径压缩、按大小合并
必刷题547. 省份数量
进阶题684. 冗余连接、990. 等式方程的可满足性
复盘重点find 是否路径压缩,什么时候判断冲突

位运算

项目内容
识别信号奇偶、是否为 2 的幂、只出现一次、状态压缩
常用模板异或、与运算清最低位 1、位掩码枚举
必刷题136. 只出现一次的数字、231. 2 的幂
进阶题191. 位 1 的个数、78. 子集
复盘重点异或性质、n & (n - 1) 的含义、负数位表示