课程简介
这门课讲什么:按题型把 LeetCode 真题拆成可复用的解法套路 如果把「刷题」当成单纯地堆题量,通常在刷到一两百题之后就会遇到瓶颈:题目稍作变形就无从下手,或者同一类题每次都要重新想。这门课的组织方式正好相反,它不按题目编号推进,而是按数据结构与算法思想分章,把 LeetCode 上的高频真题挂到对应的解题范式下面。数组、滑动窗口、双指针、快排 par…
这门课讲什么:按题型把 LeetCode 真题拆成可复用的解法套路
如果把「刷题」当成单纯地堆题量,通常在刷到一两百题之后就会遇到瓶颈:题目稍作变形就无从下手,或者同一类题每次都要重新想。这门课的组织方式正好相反,它不按题目编号推进,而是按数据结构与算法思想分章,把 LeetCode 上的高频真题挂到对应的解题范式下面。数组、滑动窗口、双指针、快排 partition、链表、栈与队列、二叉树与递归、回溯、动态规划这些主题各自成章,每一章先讲清这类问题的共性特征,再拿具体题目落地验证。
从资料包给出的章节片段能看出这个思路:数组一章不是孤立地讲某一道题,而是把「移动零」当作在原数组上做原地操作的入门,把「颜色分类」当作三路快排 partition 思想的应用,把「长度最小的子数组」和「无重复字符的最长子串」放在一起,讲滑动窗口怎么维护窗口内的状态、什么时候收缩左边界。这种排布的价值在于,你学到的不是某道题的答案,而是一套可以迁移到同类新题上的推理方式。
配套源码该怎么用:对照实现,而不是对着视频抄
这门课的价值很大一部分在于可运行的代码。合理的用法是:先把某道题的题意和约束条件读清楚,自己写出第一版能通过测试的解法,再打开对应章节的代码做对照。重点看三件事——边界条件的处理方式、变量命名与循环结构、以及从暴力解法到最优解法的演进过程。比如滑动窗口题,暴力解法是枚举所有子数组并重新求和,优化后才引入窗口内状态的增量维护;只看最终代码是看不出这个转折点的,但自己写过一遍再对照,就能明白每一步优化到底省掉了什么。
另外,同一道题往往有多种解法,时间与空间复杂度各不相同。源码里如果有多种实现,建议按复杂度从差到好逐版本比对,记录下每次改进带来的收益。这类笔记比单纯收藏代码仓库有用得多。
可复用的工程模块
- 滑动窗口模板:右指针扩张、条件不满足时左指针收缩、窗口内状态增量更新,这套结构可以直接套用到子串、子数组类问题。
- 三路 partition:把数组按小于、等于、大于某个基准值分成三段,是「颜色分类」的核心,也是快排优化和荷兰国旗问题的通用手段。
- 双指针与原地操作:在不申请额外数组的前提下完成去重、移除元素、合并有序数组,这类技巧在工程里的原地数据处理中同样常见。
- 递归与回溯的状态管理:路径的加入与撤销、访问标记的还原,是排列组合、子集、棋盘类问题的公共骨架。
- 复杂度分析习惯:每写完一个解法顺手标注时间与空间复杂度,长期坚持会明显提升对算法选型的判断力。
适合谁,以及怎么安排学习节奏
这门课更适合已经掌握一门编程语言基础语法、能独立写出循环与递归,但面对算法题缺少系统方法的开发者。如果你连数组和链表的基本操作都还不熟,建议先补语言基础再回来。学习节奏上,不建议一次性把整章视频看完再动手,更有效的是按「读题—自己写—对照源码—复述思路」的循环推进,每个主题吃透三四道典型题,比泛刷二十道更扎实。每章结束后可以合上资料,凭记忆把该类问题的模板默写一遍,能默写出来才算真正掌握。整门课的价值不在看完,而在于把每类问题的思路内化成自己解题时的第一反应。
玩转算法面试 Leetcode 真题
Leetcode 真题解析,轻松应对面试
编辑点评
系统讲解 Leetcode 真题,深入剖析算法思路,提升面试竞争力。
⭐ 编辑推荐
针对 Leetcode 真题,系统讲解,深入剖析算法思路,助你轻松应对面试。
✨ 课程亮点
✦Leetcode 真题解析
✦算法思路深入剖析
✦面试竞争力提升
课程目录
第3章 数组中的问题其实最常见8 集
- 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章 递归和回溯法5 集
- 8-2 浠€涔堟槸鍥炴函.mp4 [71.2 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]
第1章 算法面试到底是什么鬼4 集
- 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章 面试中的复杂度分析7 集
- 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章 课程结语1 集
第10章 贪心算法3 集
- 10-2 贪心算法与动态规划的关系 Non-oerlapping Interals.mp4 [94.0 MB]
- 10-1 贪心基础 Assign Cookies.mp4 [55.6 MB]
- 10-3 贪心选择性质的证明.mp4 [65.1 MB]
第6章 栈,队列,优先队列7 集
- 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章 二叉树和递归6 集
- 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章 在链表中穿针引线6 集
- 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章 动态规划基础7 集
- 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章 查找表相关问题9 集
- 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]
🎯 学习收获
- 掌握 Leetcode 真题解题技巧
- 提升算法思维
- 增强面试信心