算法面试突击手册 —— 总目录

覆盖 LeetCode Hot 100 全部核心题型,按算法类型分类,手撕代码级深度讲解。


使用指南

  1. 按类型系统学习:每天攻克 1-2 个类型,先看「概念与特点」建立直觉,再精讲每道题
  2. 重点看解题分析:理解”为什么用这种方法”比背代码重要 10 倍
  3. 配合记忆口诀:每题尽量给出口诀,面试紧张时靠口诀唤醒思路
  4. 默写关键代码:每题看完后关掉文件,自己手写一遍

目录总览

序号类型题目数文件
01哈希表5算法手册-01-哈希表.md
02双指针5算法手册-02-双指针.md
03滑动窗口4算法手册-03-滑动窗口.md
04前缀和3算法手册-04-前缀和.md
05栈与单调栈6算法手册-05-栈与单调栈.md
06二分查找6算法手册-06-二分查找.md
07排序(含快排/归并思想)5算法手册-07-排序.md
08链表12算法手册-08-链表.md
09二叉树(DFS/BFS)17算法手册-09-二叉树.md
10回溯9算法手册-10-回溯.md
11动态规划(DP)18算法手册-11-动态规划.md
12贪心5算法手册-12-贪心.md
13图(BFS/DFS/拓扑/并查集)6算法手册-13-图.md
14堆(优先队列)5算法手册-14-堆.md
15矩阵/多维数组6算法手册-15-矩阵.md

各类型题目清单

01 哈希表(5 题)

题号题名难度核心技巧
1Two Sum 两数之和🟢HashMap 存 value→index
49Group Anagrams 字母异位词分组🟡排序后做 key / 字符计数做 key
128Longest Consecutive Sequence 最长连续序列🟡HashSet + 只从起点开始计数
136Single Number 只出现一次的数字🟢异或运算
169Majority Element 多数元素🟢摩尔投票 / HashMap 计数

02 双指针(5 题)

题号题名难度核心技巧
283Move Zeroes 移动零🟢快慢指针交换
11Container With Most Water 盛最多水的容器🟡左右夹逼
153Sum 三数之和🟡排序 + 固定一个 + 双指针
42Trapping Rain Water 接雨水🔴左右双指针 + 维护两边最大高度
75Sort Colors 颜色分类🟡三路快排(荷兰国旗)

03 滑动窗口(4 题)

题号题名难度核心技巧
3Longest Substring Without Repeating Characters🟡HashSet + 右扩左缩
438Find All Anagrams in a String🟡固定窗口 + 字符计数数组
76Minimum Window Substring🔴可变窗口 + need/have 计数器
239Sliding Window Maximum🔴单调队列(双端队列)

04 前缀和(3 题)

题号题名难度核心技巧
560Subarray Sum Equals K🟡前缀和 + HashMap 记录出现次数
238Product of Array Except Self🟡前缀积 × 后缀积
437Path Sum III 路径总和 III🟡树上前缀和 + HashMap

05 栈与单调栈(6 题)

题号题名难度核心技巧
20Valid Parentheses 有效的括号🟢栈匹配括号
155Min Stack 最小栈🟡辅助栈存最小值
394Decode String 字符串解码🟡双栈(数字栈 + 字符串栈)
739Daily Temperatures 每日温度🟡单调递减栈
84Largest Rectangle in Histogram🔴单调递增栈 + 哨兵
32Longest Valid Parentheses🔴栈存下标 / DP

06 二分查找(6 题)

题号题名难度核心技巧
35Search Insert Position🟢标准二分模板
74Search a 2D Matrix🟡二维坐标 → 一维下标
34Find First and Last Position🟡左边界 + 右边界二分
33Search in Rotated Sorted Array🟡判断哪半有序
153Find Minimum in Rotated Sorted Array🟡找旋转点
4Median of Two Sorted Arrays🔴二分较短数组的划分位置

07 排序(5 题)

题号题名难度核心技巧
215Kth Largest Element 数组中的第K个最大元素🟡快速选择
56Merge Intervals 合并区间🟡按起点排序后合并
347Top K Frequent Elements 前K个高频元素🟡桶排序 / 堆
148Sort List 排序链表🟡归并排序
31Next Permutation 下一个排列🟡找规律(从右找第一个降序位)

08 链表(12 题)

题号题名难度核心技巧
160Intersection of Two Linked Lists🟢双指针走完对方的路
206Reverse Linked List🟢迭代/递归反转
234Palindrome Linked List🟢快慢指针 + 反转后半段
141/142Linked List Cycle I & II🟢/🟡快慢指针 / Floyd判圈
21Merge Two Sorted Lists🟢归并思想
2Add Two Numbers🟡模拟加法 + 进位
19Remove Nth Node From End🟡快慢指针间隔 n
24Swap Nodes in Pairs🟡迭代/递归交换
25Reverse Nodes in k-Group🔴分组反转
138Copy List with Random Pointer🟡节点插入法 / HashMap
23Merge k Sorted Lists🔴归并 / 堆
146LRU Cache🟡HashMap + 双向链表

09 二叉树(17 题)

题号题名难度核心技巧
94Binary Tree Inorder Traversal🟢递归 / 栈模拟中序
104Maximum Depth of Binary Tree🟢DFS 后序 / BFS 层数
226Invert Binary Tree🟢递归交换左右
101Symmetric Tree🟢双指针递归比较
543Diameter of Binary Tree🟢后序求深度 + 更新直径
102Level Order Traversal🟡BFS 队列
108Sorted Array to BST🟢二分中点做根
98Validate BST🟡中序 / 递归传范围
230Kth Smallest in BST🟡中序遍历计数
199Right Side View🟡BFS 取每层最后一个
114Flatten to Linked List🟡后序展开
105Construct from Preorder/Inorder🟡递归划分子树
236Lowest Common Ancestor🟡后序查找
124Max Path Sum🔴后序 + 维护全局最大
538Convert BST to Greater Tree🟡反向中序(右→根→左)
617Merge Two Binary Trees🟢同步递归
297Serialize/Deserialize🔴前序序列化

10 回溯(9 题)

题号题名难度核心技巧
46Permutations 全排列🟡回溯 + used 标记
78Subsets 子集🟡选/不选 回溯
17Letter Combinations🟡回溯多叉树
39Combination Sum 组合总和🟡可重复选 + startIndex
22Generate Parentheses 括号生成🟡左/右括号计数剪枝
79Word Search 单词搜索🟡二维回溯 + 标记访问
131Palindrome Partitioning🟡回溯 + 判断回文
51N-Queens N皇后🔴回溯 + 对角线剪枝
494Target Sum 目标和🟡回溯 / 转 DP

11 动态规划(18 题)

题号题名难度核心技巧
70Climbing Stairs 爬楼梯🟢斐波那契 DP
198House Robber 打家劫舍🟡状态机 DP
53Maximum Subarray🟡Kadane 算法
62Unique Paths 不同路径🟡二维网格 DP
64Minimum Path Sum 最小路径和🟡二维网格 DP
322Coin Change 零钱兑换🟡完全背包 DP
279Perfect Squares 完全平方数🟡类似零钱兑换
139Word Break 单词拆分🟡区间 DP(子串判断)
300Longest Increasing Subsequence🟡DP + 二分优化
152Maximum Product Subarray🟡正负维护双状态
416Partition Equal Subset Sum🟡0-1 背包
5Longest Palindromic Substring🟡中心扩散 / 区间 DP
72Edit Distance 编辑距离🔴字符串 DP
10Regular Expression Matching🔴字符串 DP
121Stock I 买卖股票最佳时机🟢贪心 / DP
309Stock with Cooldown🟡状态机 DP
337House Robber III🟡树形 DP
312Burst Balloons 戳气球🔴区间 DP
96/118Unique BST / Pascal Triangle🟡/🟢卡特兰数 / 递推

12 贪心(5 题)

题号题名难度核心技巧
121Best Time to Buy and Sell Stock🟢贪心维护最低价
55Jump Game 跳跃游戏🟡贪心维护最远可达
45Jump Game II🟡贪心分层跳跃
763Partition Labels🟡记录最后出现位置
406Queue Reconstruction by Height🟡排序 + 贪心插入

13 图(6 题)

题号题名难度核心技巧
200Number of Islands🟡DFS/BFS 沉岛
207Course Schedule🟡拓扑排序 / BFS 入度
208Implement Trie🟡多叉树实现前缀树
399Evaluate Division🟡带权并查集 / BFS
994Rotting Oranges🟡多源 BFS
695Max Area of Island🟡DFS 求连通面积

14 堆(5 题)

题号题名难度核心技巧
215Kth Largest Element🟡小根堆 O(nlogk)
347Top K Frequent Elements🟡小根堆 / 桶排序
295Find Median from Data Stream🔴双堆(大根堆 + 小根堆)
239Sliding Window Maximum🔴大根堆存值和下标
23Merge k Sorted Lists🔴小根堆多路归并

15 矩阵/多维数组(6 题)

题号题名难度核心技巧
73Set Matrix Zeroes 矩阵置零🟡第一行/列做标记
54Spiral Matrix 螺旋矩阵🟡四边界收缩
48Rotate Image 旋转图像🟡转置 + 水平翻转
240Search a 2D Matrix II🟡从右上角搜索
85Maximal Rectangle 最大矩形🔴转成柱状图最大矩形
221Maximal Square 最大正方形🟡DP / 转柱状图

刷题路线建议

Week 1: 哈希表 → 双指针 → 滑动窗口 → 前缀和
Week 2: 栈与单调栈 → 二分查找 → 排序
Week 3: 链表全部
Week 4: 二叉树(前 10 题)→ 二叉树(后 7 题)
Week 5: 回溯全部
Week 6: DP 一维 → DP 二维/背包
Week 7: DP 区间/树形 → 贪心
Week 8: 图 → 堆 → 矩阵 → 综合复习

🎯 目标:8 周后,Hot 100 任何一道题,5 分钟内能写出正确思路,15 分钟内能写出正确代码。