
九章算法 - 面试高频题冲刺班
来自 网络整理·免费领取学习资源
5,034 领取 · 5,698 收藏更新于 2026年9月20日
这份资料来自网络整理2026年的付费VIP课,内容以视频为主,对应《九章算法 - 面试高频题冲刺班》。官网需要单独购买,有集上可以免费领取。
课程目录
- 第一章【视频】算法面试高频知识点与技巧 Algorithm Interview Skills
- 临时抱佛脚 vs 系统性学习
- a.各自有什么准备策略?
- b.什么情况该使用哪种方式
- 本课程的先修知识点、建议学习路径
- 两种高频技巧
- a.遇到新题的通用解题技巧——时间复杂度倒推算法
- b.Subarray 问题的必备技巧——前缀和 PrefixSum
- 四份 Cheat Sheet 最新版本
- a.高频面试算法知识点 Cheat Sheet
- b.高频数据结构知识点 Cheat Sheet
- c.时间复杂度与算法对应表 Cheat Sheet
- d,高频算法模板 Cheat Sheet
- 后续课程大纲
- Q & A
- 第二章【视频】算法面试高频知识点与技巧 Algorithm Interview Skills(令狐老师主讲)
- 临时抱佛脚 vs 系统性学习
- a.各自有什么准备策略?
- b.什么情况该使用哪种方式
- 本课程的先修知识点、建议学习路径
- 两种高频技巧
- a.遇到新题的通用解题技巧——时间复杂度倒推算法
- b.Subarray 问题的必备技巧——前缀和 PrefixSum
- 四份 Cheat Sheet 最新版本
- a.高频面试算法知识点 Cheat Sheet
- b.高频数据结构知识点 Cheat Sheet
- c.时间复杂度与算法对应表 Cheat Sheet
- d,高频法模板 Cheat Sheet
- 后续课程大纲
- Q & A
- 第三章【视频】面试中的高频算法:同向双指针 Same Direction Two Points
- 最暴力到最优:在面试中你能实现到哪一步?
- F家:和大于S的最小子数组
- a.暴力法Violence
- b.前缀和优化 Prefixes and Optimizations
- c.二分法 Dichotomy
- d.同向双指针 Codirectional Double Pointer
- 大厂都会出的“最小子串覆盖”问题
- a.如何分析与实现代码细节
- G家新:加热器 Heaters
- a.二分答案的思路要点
- b.不同数组上的同向双指针
- 第四章【视频】面试中的高频算法:同向双指针 Same Direction Two Points(令狐老师主讲)
- 最暴力到最优:在面试中你能实现到哪一步?
- F家:和大于S的最小子数组
- a.暴力法Violence
- b.前缀和优化Prefixes and optimizations
- c.二分法Dichotomy
- d.同向双指针Codirectional double pointer
- 大厂都会出的“最小子串覆盖”问题
- a.如何分析与实现代码细节
- G家新题:加热器 Heaters
- a.二分答案的思路要点
- b.不同数组上的同向双指针
- 第五章【互动】算法学习拓展知识:暴力、贪心、模拟等 Brute Force, Greedy & Implementation, etc
- 暴力(Brute Force)、贪心(Greedy)、模拟(Implementation)是什么算法?
- a.经典贪心问题:会议室问题
- b.高盛OA必考模拟题:奇怪的排序(Strange Sort)
- c.普通的模拟问题:Pick Carrots
- 如何从数据范围推导时间复杂度?
- a.运行时间的上限是多少
- b.数据范围与算法的推导关系
- 二分法进阶
- a.不一样的二分查找:搜索旋转排序数组
- b.二分答案:经典问题 Wood Cut
- 第六章【互动】滑窗型双指针与隔板法 Sliding Window & Stars and Bars
- 一个例子带你看破滑窗型双指针(Sliding Window)
- 什么是隔板法?
- a.隔板法的适用情况
- b.隔板法例题:股票问题 III
- 隔板法套双指针 —— 摘苹果问题
- 第七章【互动】BFS基础知识回顾 BFS Review
- BFS基本模版回顾
- 如何解决分层BFS问题
- a.分层BFS的写法
- b.利用hashmap(dict)对代码进行优化
- c.Java如何将二维坐标作为Hashmap/Hashset的key
- 如何解决基本的拓扑排序问题
- 第八章【互动】DFS课前预习内容 DFS Preview
- 二叉树(Binary Tree)的直径问题
- a.递归(Recursion)三要素是什么
- b.通过优化传入参数与返回值快速解决问题
- 如何解决图中的直径
- a.Follow up:如何找到图中第二长的直径
- 二叉树(Binary Tree)分治(Divide & Conquer)预习练习题
- a.二叉树中最深的节点
- 第九章【视频】BFS进阶与最短路算法 BFS Advanced & Shortest Path Fast Algorithm
- BFS 解决最短路径问题时可能产生的各类变化
- 宽度优先搜索代码模板
- BFS 两种实现方式
- 在不同情况下各自的优劣对比
- 图的邻接表(Adjacency List)存储方法
- 使用 SPFA 算法解决复杂图最短路径问题
- 双向宽度优先搜索代码模板
- 双向宽度优先搜索到底带来多大的优化?
- 如何记录 BFS 求出的最短路径的具体方案
- 第十章【视频】BFS进阶与最短路算法 BFS Advanced & Shortest Path Fast Algorithm(令狐老师主讲)
- BFS 解决最短路径问题时可能产生的各类变化
- 宽度优先搜索代码模板
- BFS 两种实现方式
- 在不同情况下各自的优劣对比
- 图的邻接表(Adjacency List)存储方法
- 使用 SPFA 算法解决复杂图最短路径问题
- 双向宽度优先搜索代码模板
- 双向宽度优先搜索到底带来多大的优化?
- 如何记录 BFS 求出的最短路径的具体方案
- 第十一章【视频】DFS进阶 DFS Advanced
- 二叉搜索树(BST)有什么性质?
- 怎样快速实现在二叉树上的DFS?
- 如何理解分治型DFS
- a.分治型DFS如何形象的记忆?
- b.退出条件是怎样的?
- 分治型DFS与记忆化搜索、DP之间是什么关系?
- a.Word Break II
- 二叉树上的DFS问题
- 隐式图上的DFS问题
- 大厂DFS真题详解
- 第十二章【视频】DFS进阶(令狐老师主讲)DFS Advanced(Linghu)
- 二叉搜索树(BST)有什么性质?
- 怎样快速实现在二叉树上的DFS?
- 如何理解分治型DFS
- a.分治型DFS如何形象的记忆?
- b.退出条件是怎样的?
- 分治型DFS与记忆化搜索、DP之间是什么关系?
- a.Word Break II
- 二叉树上的DFS问题
- 隐式图上的DFS问题
- 大厂DFS真题详解
- 第十三章【互动】动态规划预习知识 Dynamic Programming Preview
- 动态规划的四要素
- 记忆化搜索与动态规划是什么关系?
- 如何优化动态规划算法的空间复杂度?
- a.滚动数组算法Scrolling array algorithm
- 01背包及其优化
- a.01背包基本概念Basic concept of backpack
- b.01背包最优解法Backpack optimal solution
- 完全背包及其优化
- a.完全背包基本概念Complete backpack basic concept
- b.完全背包最优解法Complete backpack optimal solution
- 第十四章【互动】概率型动态规划 Probabilistic Dynamic Programming
- 概率型动态规划基本特点
- 概率型动态规划解题思路
- 概率型动态规划例题讲解
- a.骰子类概率动态规划Dice Class Probabilistic Dynamic Programming
- b.骑士类概率动态规划Knight Class Probabilistic Pynamic Programming
- 概率型动态规划扩展知识
- 第十五章【视频】动态规划进阶(上)—坐标型动态规划与背包型动态规划 Dynamic programming Ⅰ
- 动态规划的使用场景
- 动态规划的分类 –
- 三个关键词解析动态规划问题
- 坐标:LintCode 1827. 停在原地的方案数
- 子序列:LintCode 1702. 不同的子序列
- 求和:LintCode 1607. 盈利计划
- 第十六章【视频】动态规划进阶(上)—坐标型动态规划与背包型动态规划(令狐老师主讲) Advanced Dynamic Programming Ⅰ(Linghu)
- 动态规划的使用场景
- 动态规划的分类 –
- 三个关键词解析动态规划问题
- 坐标:LintCode 1827. 停在原地的方案数
- 子序列:LintCode 1702. 不同的子序列
- 求和:LintCode 1607. 盈利计划
- 第十七章【视频】动态规划进阶(下)—动态规划习题训练 Dynamic Programming Ⅱ
- 坐标型动态规划:LintCode 1861. 老鼠跳跃
- 如何正确计算正方形的数量:LintCode 1869. 全1正方形
- 分组背包:LintCode 1800. 浮点数组合和
- 区间型动态规划:LintCode 1798. 合并石头的最低成本
- 第十八章【视频】动态规划进阶(下)—动态规划习题训练 Dynamic Programming Ⅱ(令狐老师主讲)
- 坐标型动态规划:LintCode 1861. 老鼠跳跃
- 如何正确计算正方形的数量:LintCode 1869. 全1正方形
- 分组背包:LintCode 1800. 浮点数组合和
- 区间型动态规划:LintCode 1798. 合并石头的最低成本
- 第十九章【互动】并查集初探 Union Find
- 使用并查集解决 BFS 难以解决的问题
- a.图是否是树 II
- 并查集是什么
- 并查集的结构以及模板
- 并查集能维护什么
- a.元素是否在同一个集合中:连接图 I
- b.集合的大小:连接图 II
- c.集合的数量:连接图 III
- 第二十章【互动】字典树入门 Intro to Trie
- 比哈希表好用的字典树
- a.F家真题:单词的添加与查找
- 字典树的考察方法
- 字典树的结构以及模板代码
- 使用字典树维护前缀的出现次数
- a.美团真题:识别字符串
- 字典树的其他操作
- a.查询单词是否出现
- b.查询前缀是否出现
- 第二十一章【视频】连通性问题通解:并查集 Union Find
- 有了BFS,为啥要用并查集?
- 并查集怎么考,考什么?
- G家并查集题目:岛屿的个数系列
- a.BFS:434. 岛屿的个数
- b.Follow Up :434. 岛屿的个数 II
- c.删除与合并:1014. 打砖块
- 并查集的其他可维护信息
- a.查询集合内部元素:805. 最大关联集合
- 并查集加速其他算法
- a.F家:论文查重
- 第二十二章【视频】连通性问题通解:并查集 Union Find(令狐老师主讲)
- 有了BFS,为啥要用并查集?
- 并查集怎么考,考什么?
- G家并查集题目:岛屿的个数系列
- a.BFS:434. 岛屿的个数
- b.Follow Up :434. 岛屿的数 II
- c.删除与合并:1014. 打砖块
- 并查集的其他可维护信息
- a.查询集合内部元素:805. 最大关联集合
- 并查集加速其他算法
- a.F家:论文查重
- 第二十三章【视频】字典树的常见考点及题目解析 Trie
- 字典树的适用场景
- 使用字典树求解最长、最短的公共前缀
- a.G家:最大距离
- 查询前缀问题
- a.如何避免重复运算
- b.前缀长度增加与字典树指针下移
- c.辅助动态规划:K 步编辑 (G家,Airbnb)
- d.辅助复杂DFS:单词搜索 III
- 不适宜字典树的情况
- a.存放所有单词的集合:单词矩阵 (G家)
- 第二十四章【视频】字典树的常见考点及题目解析 Trie(令狐老师主讲)
- 字典树的适用场景
- 使用字典树求解最长、最短的公共前缀
- G家:最大距离
- 查询前缀问题
- 如何避免重复运算
- 前缀长度增加与字典树指针下移
- 辅助动态规划:K 步编辑 (G家,Airbnb)
- 辅助复杂DFS:单词搜索 III
- 不适宜字典树的情况
- 存放所有单词的集合:单词矩阵 (G家)
- 第二十五章【互动】单调栈介绍与实战 Monotone Stack
- 两道单调栈入门问题
- a.单调栈的最常见使用场景
- b.单调栈模板讲解
- 单调栈的变形:单调队列
- a.超级经典的问题:滑动窗口最大值
- b.单调队列和单调栈的比较
- 第二十六章【互动】使用扫描线解决区间问题 Problem of interval
- 扫描线算法介绍
- 三道例题看透一维扫描线问题
- a.超高频题目:区间合并
- b.G家:会议室 II
- c.Airbnb:员工空闲时间
- 第二十七章【视频】不易想到的 O(n) 算法:单调栈 Monotone Stack
- 什么是单调栈算法
- 单调栈的使用场景
- 双指针与单调栈的区别
- a.直方图的最大矩形覆盖
- b.F家:最大矩形
- 使用单调栈加速动态规划
- a.G家:奇偶跳
- b.图上DP 与 拓扑排序 的关系
- 单调队列的实现
- a.单调栈与单调队列的联系与区别
- b.什么时候使用单调队列
- c.G家:滑动窗口的最大值
- 第二十八章【视频】不易想到的 O(n) 算法:单调栈 Monotone Stack(令狐老师主讲)
- 什么是单调栈算法
- 单调栈的使用场景
- 双指针与单调栈的区别
- 直方图的最大矩形覆盖
- F家:最大矩形
- 使用单调栈加速动态规划
- G家:奇偶跳
- 图上DP 与 拓扑排序 的关系
- 单调队列的实现
- 单调栈与单调队列的联系与区别
- 什么时候使用单调队列
- G家:滑动窗口的最大值
- 第二十九章【视频】堆的解题技巧 Heap
- G家,Twitter真题:接雨水 Trap Rain Water
- a.前缀优化解法
- b.单调栈解法
- c.同向双指针解法
- 问题升级:接雨水 II Trap Rain Water II
- a.最常见的heap使用情景:找最值
- 大顶堆 OR 小顶堆 的选择:
- a.雇佣K个人的最低费用
- b.数据流的中位数
- 根据使用场景判断数据结构
- a.将数据流变为多个不相交区间
- 第三十章【视频】堆的解题技巧 Heap(令狐老师主讲)
- G家,Twitter真题:接雨水
- a.前缀优化解法
- b.单调栈解法
- c.同向双指针解法
- 问题升级:接雨水 II
- a.最常见的heap使用情景:找最值
- 大顶堆 OR 小顶堆 的选择:
- a.雇佣K个人的最低费用
- b.数据流的中位数
- 根据使用场景判断数据结构
- a.将数据流变为多个不相交区间
- 第三十一章【互动】前缀和扩展知识 Prefix Sum
- 前缀和的两种定义方法
- a.0-index定义法0-index definition method
- b.1-index定义法1-index definition method
- c.两种定义方法的优劣势
- 如何在二维矩阵中使用前缀和
- a.前缀和数组的定义
- b.如何求子矩阵之和
- c.二维前缀和例题讲解
- 面试经典例题讲解
- a.前缀和与预处理
- b.二分答案与前缀和的结合考察
- 第三十二章【互动】BFS课后练习讲解 BFS Practice
- 岛屿数量变形:最大连通面积
- 搜索与动态规划的抉择——地图跳跃问题
- BFS真题:湖面逃跑问题
- 第三十三章【互动】DFS扩展知识 DFS Advanced
- Amazon 经典问题:Critical Connection
- Sliding window的优化:A*算法
- 第三十四章【互动】动态规划进阶I 扩展知识 Dynamic Programming Advanced I
- 每次可以合并K堆的stone game
- a.如何解决选择K堆时出现的可能无法合并为1堆的问题
- b.选择递推还是递归解决?
- O(N^2)实现stone game —— 平行四边形优化
- a.平行四边形法则
- b.代码实现
- 第三十五章【互动】大厂动态规划题集 Dynamic Programing
- 美团:考试策略
- 阿里:染色问题
- 字节跳动:最小的窗口子序列
- 猿辅导:零钱兑换
- 第三十六章【互动】双指针、二分法实战 Two Pointers & Bisection Method
- 同向双指针新题
- a.G家:摘水果
- b.美团:字符串划分
- 二分法经典题目
- a.寻找峰值
- b.从一维数组到二维矩阵的FollowUp:寻找峰值 II
- 第三十七章【互动】最小生成树算法 Minimum Spanning Tree
- 修建道路的问题
- 什么是最小生成树(MST)
- 为什么要学习最小生成树算法
- 使用并查集的最小生成树算法
- a.Kruskal 算法流程
- b.Kruskal 算法模板
- 另一种解决最小生成树问题的算法
- a.Prim 算法介绍及代码
- 第三十八章【互动】字典树难题解析 Trie
- 位运算知识点复习
- 使用数字型字典树解决两道面试真题
- a.Google:LintCode 1248
- b.FaceBok:LintCode 722
- 第三十九章【互动】栈与表达式处理 Stack and Expression Processing
- 表达式处理问题三大考点
- a.字符串处理String handling
- b.递归Recursion
- c.栈Warehouse
- 使用递归和栈解决三种类型的表达式
- 什么是中缀、后缀表达式
- 使用栈求值后缀表达式
- 使用单调栈转化中缀表达式
- 第四十章【互动】使用线段树解决区间问题 Segment Tree
- 线段树介绍
- 线段树的构造
- 线段树的基本操作
- a.单点修改
- b.区间查询
- 线段树的简单应用
- a.区间求和 II
- b.约翰的生意
包含内容
- · 第一章【视频】算法面试高频知识点与技巧 Algorithm Interview Skills
- · 第二章【视频】算法面试高频知识点与技巧 Algorithm Interview Skills(令狐老师主讲)
- · 第三章【视频】面试中的高频算法:同向双指针 Same Direction Two Points
- · 第四章【视频】面试中的高频算法:同向双指针 Same Direction Two Points(令狐老师主讲)
- · 第五章【互动】算法学习拓展知识:暴力、贪心、模拟等 Brute Force, Greedy & Implementation, etc
- · 第六章【互动】滑窗型双指针与隔板法 Sliding Window & Stars and Bars
- · 第七章【互动】BFS基础知识回顾 BFS Review
- · 第八章【互动】DFS课前预习内容 DFS Preview
贡献者
林一
黄金
学习社区
1 人正在学习
职场沟通与管理交流
讨论工作沟通、团队管理、求职面试和办公效率,用具体场景交流方法与复盘。