很多人刷 LeetCode 的方式是这样的:打开题库,从第一题开始往下做,做不动就看题解,看懂了就下一题。刷了两百道,遇到新题还是没思路。问题不在题量,在于没有把题目按「解法类型」归过类——数组的双指针、滑动窗口、三路快排的 partition 思路,本质上是一套工具在不同场景下的复用,散着刷就永远看不出这层关系。
这份资料针对的就是这个缺口:它不按题号顺序讲,而是按算法类型分组,把同一类思路的题目放在一起对比。下面说说它适合谁、能补什么,以及看完之后你应该能回答哪些问题。
先确认你缺的是哪一块
这门课不是给零基础的人讲「什么是数组」「什么是递归」的。如果你连时间复杂度的基本概念都还没建立,先去找一门数据结构入门课,回来再看这个更合适。
它真正对口的是这几类人:
- 已经刷过几十上百题,但每道题都是独立记忆,换个数就写不出来;
- 面试临近,需要在有限时间里把高频题型的通用套路过一遍;
- 转岗做开发,算法基础薄弱,想按类型系统补,而不是靠零散刷题碰运气;
- 能写出暴力解法,但优化到 O(n) 或 O(n log n) 时卡住。
分类讲解解决的是「迁移」问题
以数组部分为例,课程把双指针、滑动窗口、原地分区这几类技巧拆开讲。滑动窗口那道最长无重复子串,重点不是背下最终代码,而是理解窗口左右边界各自什么时候移动、为什么用哈希表做窗口内的记录、以及窗口收缩的条件怎么从题目约束里推出来。这类结构一旦理清,遇到「最小覆盖子串」「长度最小的子数组」时就是同一套骨架换条件。
三路快排的 partition 思路用在颜色分类上,也是同样的逻辑:把一个排序问题转化成一次线性扫描加指针交换,这个技巧后面还会在找第 K 大元素、荷兰国旗类问题里反复出现。课程的价值就在于把这些「同一招在不同题里的变形」摆到一起,让你看见复用关系,而不是把每道题当成孤立的知识点背下来。
配套练习该怎么用
光看讲解不动手,等于没学。合理的用法是:每看完一个类型,先不看代码自己重写一遍,再去找该类型下另外两三道没讲过的题练手,检验能不能独立迁移。如果某道题卡住超过二十分钟,回去看这一类的讲解,对照自己是没识别出题型,还是识别出来了但边界条件写不对——这两种问题的补法完全不同。
另外建议按类型做笔记,每个类型只记三样东西:触发信号(题目出现什么特征时用这招)、核心不变量(循环中始终保持成立的条件)、常见坑(边界、空输入、重复元素)。这份资料可以当作按类型过套路的对照材料,但笔记必须自己写。
看完应该能回答的问题
- 看到一道数组题,怎么判断该用双指针还是滑动窗口,而不是直接上暴力?
- 滑动窗口的右边界扩张和左边界收缩,分别由题目的哪个条件决定?
- 三路 partition 相比普通快排的两路划分,多出来的那一指针解决了什么重复元素问题?
- 递归类题目里,怎么从题目描述直接确定递归函数的定义和终止条件?
- 动态规划的状态转移方程,是从哪一步推导出来的,而不是靠记模板?
如果这些问题你现在答不上来,说明缺的是「按类型归纳」这一环,而不是题量。按分类过一遍,把每类的触发信号和坑记清楚,比再多刷五十道散题管用。
Leetcode 真题分门别类讲解
LeetCode 真题分类解析,算法面试必备
编辑点评
系统讲解 LeetCode 真题,涵盖多种算法类型,适合求职者提升面试技能。
⭐ 编辑推荐
深度解析 LeetCode 真题,掌握算法解题思路,提升面试竞争力。
课程涵盖数组、递归、动态规划等多种算法类型,通过实际案例讲解,帮助学员快速掌握算法技巧。
课程亮点
课程目录
📁 第3章 数组中的问题其实最常见
3-8 在滑动窗口中做记录 Longest Substring Without Repeating Characters.mp4 [67.2 MB]
3-3 在LeetCode上解决第一个问题 Moe Zeros.mp4 [58.7 MB]
3-5 三路快排partition思路的应用 Sort Color.mp4 [96.0 MB]
3-7 滑动窗口 Minimum Size Subarray Sum.mp4 [65.7 MB]
3-4 即使简单的问题,也有很多优化的思路.mp4 [68.2 MB]
3-1 从二分查找法看如何写出正确的程序.mp4 [93.6 MB]
3-6 对撞指针 Two Sum II - Input Array is Sorted.mp4 [86.0 MB]
3-2 改变变量定义,依然可以写出正确的算法.mp4 [44.9 MB]
📁 第8章 递归和回溯法
8-4 组合问题 Combinations.mp4 [83.5 MB]
8-2 什么是回溯.mp4 [71.2 MB]
8-1 树形问题 Letter Combinations of a Phone Number.mp4 [90.1 MB]
8-8 回溯法是经典人工智能的基础 N Qvueens.mp4 [112.0 MB]
8-7 floodfill算法,一类经典问题 Number of Islands-.mp4 [105.0 MB]
8-5 回溯法解决组合问题的优化.mp4 [76.5 MB]
8-6 二维平面上的回溯法 Word Search.mp4 [114.9 MB]
8-3 排列问题 Permutations.mp4 [104.8 MB]
📁 第1章 算法面试到底是什么鬼
1-1 算法面试不仅仅是正确的回答问题.mp4 [87.4 MB]
1-4 如何回答算法面试问题.mp4 [57.5 MB]
1-2 算法面试只是面试的一部分.mp4 [65.6 MB]
1-3 如何准备算法面试.mp4 [66.5 MB]
📁 第2章 面试中的复杂度分析
2-7 避免复杂度的震荡.mp4 [47.8 MB]
2-3 简单的复杂度分析.mp4 [76.9 MB]
2-5 递归算法的复杂度分析.mp4 [64.9 MB]
2-6 均摊时间复杂度分析(Amortized Time Analysis).mp4 [73.8 MB]
2-4 亲自试验自己算法的时间复杂度.mp4 [79.7 MB]
2-2 对数据规模有一个概念.mp4 [47.4 MB]
2-1 究竟什么是大O(Big O).mp4 [92.7 MB]
📁 第11章 课程结语
11-1 结语.mp4 [6.1 MB]
📁 第10章 贪心算法
10-2 贪心算法与动态规划的关系 Non-oerlapping Interals.mp4 [94.0 MB]
10-1 贪心基础 Assign Cookies.mp4 [55.6 MB]
10-3 贪心选择性质的证明.mp4 [65.1 MB]
📁 第6章 栈,队列,优先队列
6-5 BFS和图的最短路径 Perfect Squares.mp4 [119.5 MB]
6-6 优先队列.mp4 [70.6 MB]
6-7 优先队列相关的算法问题 Top K Freqvuent Elements.mp4 [67.0 MB]
6-2 栈和递归的紧密关系 Binary Tree Preorder, Inorder and Postorder Traersal.mp4 [77.7 MB]
6-4 队列的典型应用 Binary Tree Leel Order Traersal.mp4 [54.7 MB]
6-1 栈的基础应用 alid Parentheses.mp4 [84.7 MB]
6-3 运用栈模拟递归.mp4 [86.8 MB]
📁 第7章 二叉树和递归
7-6 二分搜索树中的问题 Lowest Common Ancestor of a Binary Search Tree.mp4 [77.6 MB]
7-3 注意递归的终止条件 Path Sum.mp4 [58.9 MB]
7-5 稍复杂的递归逻辑 Path Sum III.mp4 [72.5 MB]
7-1 二叉树天然的递归结构.mp4 [82.9 MB]
7-4 定义递归问题 Binary Tree Path.mp4 [71.1 MB]
7-2 一个简单的二叉树问题引发的血案 Inert Binary Tree.mp4 [45.3 MB]
📁 第5章 在链表中穿针引线
5-2 测试你的链表程序.mp4 [67.8 MB]
5-4 复杂的穿针引线 Swap Nodes in Pairs.mp4 [58.0 MB]
5-3 设立链表的虚拟头结点 Remoe Linked List Elements.mp4 [82.6 MB]
5-1 链表,在节点间穿针引线 Reerse Linked List.mp4 [75.0 MB]
5-6 链表与双指针 Remoe Nth Node Form End of List.mp4 [80.6 MB]
5-5 不仅仅是穿针引线 Delete Node in a Linked List.mp4 [41.1 MB]
📁 第9章 动态规划基础
9-5 0-1背包问题.mp4 [162.9 MB]
9-8 LIS问题 Longest Increasing Subseqvuence.mp4 [111.0 MB]
9-3 发现重叠子问题 Integer Break.mp4 [119.8 MB]
9-4 状态的定义和状态转移 House Robber.mp4 [116.0 MB]
9-9 LCS,最短路,求动态规划的具体解以及更多.mp4 [89.0 MB]
9-7 面试中的0-1背包问题 Partition Equal Subset Sum.mp4 [119.3 MB]
9-6 0-1背包问题的优化和变种.mp4 [85.0 MB]
9-2 第一个动态规划问题 Climbing Stairs.mp4 [61.3 MB]
9-1 什么是动态规划.mp4 [89.7 MB]
📁 第4章 查找表相关问题
4-1 set的使用 Intersection of Two Arrays.mp4 [68.9 MB]
4-6 灵活选择键值 Number of Boomerangs.mp4 [64.1 MB]
4-4 使用查找表的经典问题 Two Sum.mp4 [81.8 MB]
4-2 map的使用 Intersection of Two Arrays II.mp4 [57.2 MB]
4-3 set和map不同底层实现的区别.mp4 [91.0 MB]
4-7 查找表和滑动窗口 Contain Duplicate II.mp4 [60.0 MB]
4-5 灵活选择键值 4Sum II.mp4 [63.9 MB]
4-8 二分搜索树底层实现的顺序性 Contain Duplicate III.mp4 [55.3 MB]
coding-82.zip [23.3 MB]适合人群
- 求职者
- 算法爱好者
- 编程初学者
学习收获
祝您学习愉快!
学有所成,前程似锦!






