很多人刷 LeetCode 的方式是这样的:打开题库,从第一题开始往下做,做不动就看题解,看懂了就下一题。刷了两百道,遇到新题还是没思路。问题不在题量,在于没有把题目按「解法类型」归过类——数组的双指针、滑动窗口、三路快排的 partition 思路,本质上是一套工具在不同场景下的复用,散着刷就永远看不出这层关系。

这份资料针对的就是这个缺口:它不按题号顺序讲,而是按算法类型分组,把同一类思路的题目放在一起对比。下面说说它适合谁、能补什么,以及看完之后你应该能回答哪些问题。

先确认你缺的是哪一块

这门课不是给零基础的人讲「什么是数组」「什么是递归」的。如果你连时间复杂度的基本概念都还没建立,先去找一门数据结构入门课,回来再看这个更合适。

它真正对口的是这几类人:

  • 已经刷过几十上百题,但每道题都是独立记忆,换个数就写不出来;
  • 面试临近,需要在有限时间里把高频题型的通用套路过一遍;
  • 转岗做开发,算法基础薄弱,想按类型系统补,而不是靠零散刷题碰运气;
  • 能写出暴力解法,但优化到 O(n) 或 O(n log n) 时卡住。

分类讲解解决的是「迁移」问题

以数组部分为例,课程把双指针、滑动窗口、原地分区这几类技巧拆开讲。滑动窗口那道最长无重复子串,重点不是背下最终代码,而是理解窗口左右边界各自什么时候移动、为什么用哈希表做窗口内的记录、以及窗口收缩的条件怎么从题目约束里推出来。这类结构一旦理清,遇到「最小覆盖子串」「长度最小的子数组」时就是同一套骨架换条件。

三路快排的 partition 思路用在颜色分类上,也是同样的逻辑:把一个排序问题转化成一次线性扫描加指针交换,这个技巧后面还会在找第 K 大元素、荷兰国旗类问题里反复出现。课程的价值就在于把这些「同一招在不同题里的变形」摆到一起,让你看见复用关系,而不是把每道题当成孤立的知识点背下来。

配套练习该怎么用

光看讲解不动手,等于没学。合理的用法是:每看完一个类型,先不看代码自己重写一遍,再去找该类型下另外两三道没讲过的题练手,检验能不能独立迁移。如果某道题卡住超过二十分钟,回去看这一类的讲解,对照自己是没识别出题型,还是识别出来了但边界条件写不对——这两种问题的补法完全不同。

另外建议按类型做笔记,每个类型只记三样东西:触发信号(题目出现什么特征时用这招)、核心不变量(循环中始终保持成立的条件)、常见坑(边界、空输入、重复元素)。这份资料可以当作按类型过套路的对照材料,但笔记必须自己写。

看完应该能回答的问题

  • 看到一道数组题,怎么判断该用双指针还是滑动窗口,而不是直接上暴力?
  • 滑动窗口的右边界扩张和左边界收缩,分别由题目的哪个条件决定?
  • 三路 partition 相比普通快排的两路划分,多出来的那一指针解决了什么重复元素问题?
  • 递归类题目里,怎么从题目描述直接确定递归函数的定义和终止条件?
  • 动态规划的状态转移方程,是从哪一步推导出来的,而不是靠记模板?

如果这些问题你现在答不上来,说明缺的是「按类型归纳」这一环,而不是题量。按分类过一遍,把每类的触发信号和坑记清楚,比再多刷五十道散题管用。

Leetcode 真题分门别类讲解

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]

适合人群

  • 求职者
  • 算法爱好者
  • 编程初学者

学习收获

掌握算法解题思路
提升面试竞争力
增强编程能力

祝您学习愉快!

学有所成,前程似锦!