第一章【直播】资深面试官揭秘算法面试速成技巧 - 怎样做到 Bug Free 和刷100题等于别人刷300题
免费试听
如何在算法面试中正确的沟通?
a.如何确定自己的算法是正确的?
b.如何套出面试官要求的时间复杂度?
c.如何知道自己Hire or No Hire?
如何让面试官在面试中感觉你很牛逼?
a.为什么Coding Style很重要
b.什么是Good Coding Style,什么是Bad Coding Style
如何修炼Bug Free的能力
a.一个技巧教你避免99%的Bug
b.出现Bug以后如何快速Debug
如何做到刷100题顶过别人刷300题
a.算法面试精选100题2021版(免费福利)
2021算法面试考察范围与频率一览
2021新版课程特色一览
第二章【视频】FB面试官揭秘算法面试速成技巧 - 怎样做到 Bug Free 和刷100题等于别人刷300题
11月13日10:15 - 12月13日10:15
1.如何在算法面试中正确的沟通?
a.如何确定自己的算法是正确的?
b.如何套出面试官要求的时间复杂度?
c.如何知道自己Hire or No Hire?
2.如何让面试官在面试中感觉你很牛逼?
a.为什么Coding Style很重要
b.什么是Good Coding Style,什么是Bad Coding Style
3.如何修炼Bug Free的能力
a.一个技巧教你避免99%的Bug
b.出现Bug以后如何快速Debug
4.如何做到刷100题顶过别人刷300题
a.算法面试精选100题2021版(免费福利)
5.2021算法面试考察范围与频率一览
6.2021新版课程特色一览
第三章【互动】真实面试案例分析(上)与面试评分标准
免费试听
最长回文子串Longest Palindromic Substring
a.为什么不需要学Manacher's Algorithm
b.基于双指针的算法与背向双指针算法简介
c.有哪些Bad Coding Style容易踩,面试真实案例分析
d.基于动态规划的算法与区间型动态规划简介
面试评分标准
快速提高Coding Quality的十二个技巧
第四章【互动】真实面试案例分析(下)与80%求职者会踩坑的基础知识
免费试听
字符串查找strStr
a.为什么不需要学KMP算法
b.Rabin-karp算法与哈希函数Hash Function
为什么我们不需要学习贪心法
三个你必须知道的语言知识
a.如何判断两个字符串是否相等
b.如何遍历字符串
c.null和""有什么区别
十个你必须掌握的字符串处理函数
第五章【互动】复杂度理论与双指针算法入门
11月13日10:15 - 11月27日10:15
四个算法的复杂度维度
a.时间复杂度
b.空间复杂度
c.编程复杂度
d.思维复杂度
时间复杂度是O(N)的算法有哪些
三种双指针题型
a.背向双指针
b.同向双指针
c.相向双指针
Valid Palindrome && II
Two Sum型双指针经典题
a.哈希表的做法
b.排序+双指针的做法
c.哈希表与双指针的比较
第六章【互动】必须熟练掌握的两个排序算法
11月13日10:15 - 11月27日10:15
两个必须熟练掌握的排序算法
a.快速排序算法
b.归并排序算法
Quick Select快速选择算法
第七章【互动】时间复杂度为O(logN)的高频算法——二分法
11月13日10:15 - 11月27日10:15
时间复杂度的分析技巧——T函数推导法
通过时间复杂度倒推算法的技巧
递归是什么,如何实现二分
什么是堆空间(Heap Memory),什么是栈空间(Stack Memory)
什么是Stack Overflow,如何造成的,如何避免
第八章【互动】一个不会出现死循环的通用二分法模板
11月13日10:15 - 11月27日10:15
二分法的基本原理
通用模板
a.什么时候死循环
b.为什么能做到通用
使用二分法解决求第一个位置,求最后一个位置和求任意位置的二分问题
二分算法的判断条件
第九章【直播】高频算法之王——双指针算法之相向双指针
11月21日10:15 - 12:45
两数之和的十种变形题
a.数据结构设计
b.不同的二元组个数
c.两数之和小于等于
d.两数之和大于等于
e.三角形个数
f.两数之和最接近
g.三数之和
h.三数之和最接近
i.四数之和
j.K数之和
时间复杂度与循环层数的关系
Partition型相向双指针
a.2-Part-Partitionvs3-Part-Partition
b.彩虹排序算法
c.通过移0的问题看相向双指针与同向双指针的区别
第十章【直播】简约而不简单——二分法学习的四重境界
11月22日10:15 - 12:45
第一重境界写出不会死循环二分法
第二重境界在排序的输入集上进行二分
第三重境界在未排序输入集上进行二分
第四重境界在结果集上进行二分
第十一章【视频】高频算法之王——双指针算法之相向双指针
11月22日10:15 - 11月29日10:15
两数之和的十种变形题
a.数据结构设计
b.不同的二元组个数
c.两数之和小于等于
d.两数之和大于等于
e.三角形个数
f.两数之和最接近
g.三数之和
h.三数之和最接近
i.四数之和
j.K数之和
时间复杂度与循环层数的关系
Partition型相向双指针
a.2-Part-Partitionvs3-Part-Partition
b.彩虹排序算法
c.通过移0的问题看相向双指针与同向双指针的区别
第十二章【视频】简约而不简单——二分法学习的四重境界
11月22日10:15 - 11月29日10:15
第一重境界写出不会死循环二分法
第二重境界在排序的输入集上进行二分
第三重境界在未排序输入集上进行二分
第四重境界在结果集上进行二分
第十三章【互动】队列知识点从易到难
11月22日10:15 - 12月6日10:15
队列及相关面试题
Java中的Interface是什么
链表和数组实现队列的区别
循环队列的实现方法
第十四章【互动】宽度优先搜索与图论入门
11月22日10:15 - 12月6日10:15
宽度优先搜索的适用场景
宽度优先搜索的三种实现方法
a.两个队列的实现方法
b.DummyNode的实现方法
c.一个队列的实现方法
无向图和有向图的存储方法
第十五章【互动】用递归实现遍历法和分治法
11月22日10:15 - 12月6日10:15
递归Recursion,深搜DFS,回溯Backtracking的联系和区别
递归三要素是什么
通过二叉树学习DFS中的遍历法
什么是分治法,遍历法和分治法的区别
a.通过两道实战真题理解分治法和遍历法的区别
第十六章【互动】使用非递归实现二叉树的遍历
11月22日10:15 - 12月6日10:15
非递归版本的二叉树中序遍历
a.BST是什么
b.BST Iterator的两种实现方法
第十七章【直播】性价比之王——宽度优先搜索
11月28日10:15 - 12:45
连通块问题
a.DFS vs BFS在连通块问题上的优劣
b.劝分不劝合的编码理论
图的层级遍历与简单图最短路径问题
a.什么是简单图
b.复杂度最短路径有什么算法
c.最长路径用什么算法
d.什么是隐式图
e.通用的BFS模板
f.80%的人都会写错的BFS写法
拓扑排序
a.DFS vs BFS在拓扑排序上的优劣
b.拓扑排序的五个考点
i.问有没有拓扑排序
ii.求任意一个拓扑排序
iii.求最小的拓扑排序
iv.求拓扑排序是否唯一
第十八章【直播】解决99%二叉树问题的算法——分治法
11月29日10:15 - 12:45
用分治法解决二叉树求值求路径的问题
a.理解什么是搜索中的回溯
用分治法解决二叉树形态变换的问题
a.全局变量在代码中的危害
第十九章【视频】性价比之王——宽度优先搜索
11月28日10:15 - 12月5日10:15
连通块问题
a.DFS vs BFS在连通块问题上的优劣
b.劝分不劝合的编码理论
图的层级遍历与简单图最短路径问题
a.什么是简单图
b.复杂度最短路径有什么算法
c.最长路径用什么算法
d.什么是隐式图
e.通用的BFS模板
f.80%的人都会写错的BFS写法
拓扑排序
a.DFS vs BFS在拓扑排序上的优劣
b.拓扑排序的五个考点
i.问有没有拓扑排序
ii.求任意一个拓扑排序
iii.求最小的拓扑排序
iv.求拓扑排序是否唯一
第二十章【视频】解决99%二叉树问题的算法——分治法
11月29日10:15 - 12月6日10:15
用分治法解决二叉树求值求路径的问题
a.理解什么是搜索中的回溯
用分治法解决二叉树形态变换的问题
a.全局变量在代码中的危害
第二十一章【互动】组合类DFS
11月28日10:15 - 12月12日10:15
组合类搜索的隐式图模型
组合类搜索的时间复杂度和适用条件
如何对搜索结果进行去重
a.选代表vs哈希表
第二十二章【互动】排列类DFS
11月28日10:15 - 12月12日10:15
排列类搜索的隐式图模型
排列类搜索的时间复杂度和适用条件
通过排列类搜索看搜索与多重循环的区别
著名的NP问题:TSP问题(旅行商问题)
a.DFS的解法
b.状态压缩型动态规划
c.随机化算法
第二十三章【互动】哈希表的原理
11月28日10:15 - 12月12日10:15
HashMap和HashSet的联系和区别
哈希表Hash Table的基本原理
什么是哈希函数Hash Function
如何解决冲突Collision
a.开散列Open Hash vs 闭散列Closed Hash
哈希表扩容问题
第二十四章【互动】堆的基本原理
11月28日10:15 - 12月12日10:15
Priority Queue和堆的联系和区别
堆的基本原理
堆的基本操作Sift Up和Sift Down
堆的增删查改
堆的初始化Heapify
堆排序
第二十五章【直播】刷人利器——深度优先搜索
12月5日10:15 - 12:45
排列组合类搜索
a.两种组合类DFS的实现方法
b.使用组合类DFS算法解决K数之和问题
c.DFS的框架模板
矩阵上的DFS
如何解决求所有最短路线的问题
第二十六章【直播】高频数据结构——哈希表与堆
12月6日10:15 - 12:45
数据结构设计题的考点
数据结构设计题的时间复杂度计算方式
在线算法vs离线算法
堆Heap的实战真题
高级数据结构的Cheat Sheet
第二十七章【视频】刷人利器——深度优先搜索
12月5日10:15 - 12月12日10:15
排列组合类搜索
a.两种组合类DFS的实现方法
b.使用组合类DFS算法解决K数之和问题
c.DFS的框架模板
矩阵上的DFS
如何解决求所有最短路线的问题
第二十八章【视频】高频数据结构——哈希表与堆
12月6日10:15 - 12月13日10:15
数据结构设计题的考点
数据结构设计题的时间复杂度计算方式
在线算法vs离线算法
堆Heap的实战真题
高级数据结构的Cheat Sheet
第二十九章【互动】从搜索到动规——记忆化搜索入门
12月5日10:15 - 12月19日10:15
什么时候可以使用记忆化搜索
DFS和记忆化搜索的区别
如何用三行代码让DFS变成记忆化搜索
用记忆化搜索解决博弈型动态规划
记忆化搜索的缺陷
第三十章【互动】动态规划入门与动规四要素
12月5日10:15 - 12月19日10:15
动态规划DP与记忆化搜索的关系
多重循环与记忆化搜索实现动态规划的区别
什么时候使用动态规划
a.动态规划四要素是什么
自底向上的动态规划
自顶向下的动态规划
第三十一章【互动】动态规划使用场景与题型分类
12月5日10:15 - 12月19日10:15
动态规划算法的使用场景
动态规划题型一览
坐标型动态规划
第三十二章【互动】背包型动态规划入门
12月5日10:15 - 12月19日10:15
01背包
带价值的背包
多重背包
第三十三章【直播】让面试官眼前一亮——记忆化搜索
12月12日10:15 - 12:45
三种适用动态规划的场景
三种不适用动态规划的场景
用记忆化搜索解决字符串相关的DP问题
第三十四章【直播】最难的算法——动态规划
12月13日10:15 - 12:45
动态规划的解题步骤
动态规划的空间优化技巧——滚动数组
坐标型动态规划的分支——接龙型动态规划
通过经典DP题LIS看动态规划如何记录具体方案
上下左右都可以走的矩阵如何进行动态规划
第三十五章【视频】让面试官眼前一亮——记忆化搜索
12月12日10:15 - 12月19日10:15
三种适用动态规划的场景
三种不适用动态规划的场景
用记忆化搜索解决字符串相关的DP问题
第三十六章【视频】最难的算法——动态规划
12月13日10:15 - 12月20日10:15
动态规划的解题步骤
动态规划的空间优化技巧——滚动数组
坐标型动态规划的分支——接龙型动态规划
通过经典DP题LIS看动态规划如何记录具体方案
上下左右都可以走的矩阵如何进行动态规划
第三十七章【互动】双指针算法之同向双指针(上)
12月12日10:15 - 12月26日10:15
Two Sum的第十一种变形题——两数之差
全零子串问题
数组去重问题
第三十八章【互动】双指针算法之同向双指针(下)
12月12日10:15 - 12月26日10:15
数组和字符串上的同向双指针
a.滑动窗口求和
b.K次替换后最长的重复字符子串
快慢指针算法
a.链表求交、链表求环
b.链表中位点
第三十九章【互动】二分法实战练习
12月12日10:15 - 12月26日10:15
排序输入集:排序矩阵找数问题
未排序输入集:最小的包含所有连通01块的矩阵
结果集二分:抄书问题
第四十章【互动】时间复杂度低于O(N)的算法
12月12日10:15 - 12月26日10:15
比O(N)小的算法 -O(LogN)
a.快速幂算法
b.辗转相除法
c.两个排序数组的中位数
O(√N)的算法
a.分解质因数
b.分块检索法
第四十一章【互动】使用宽度优先搜索找所有方案
12月12日10:15 - 12月26日10:15
使用BFS求所有方案类问题
使用BFS序列化二叉树
a.什么是序列化与反序列化
第四十二章【互动】双向宽度优先搜索算法
12月12日10:15 - 12月26日10:15
双向宽度优先搜索算法
a.双向宽度优先搜索到底优化了多少
b.如何优雅的实现双向宽度优先搜索
第四十三章【互动】后序遍历非递归与Morris算法
12月12日10:15 - 12月26日10:15
非递归实现后序遍历
Morris算法
第四十四章【互动】二叉查找树的增删查改
12月19日10:15 - 1月2日10:15
BST 的增删查改
第四十五章【互动】非递归的方式实现排列和组合类DFS
12月19日10:15 - 1月2日10:15
使用求下一个排列的算法实现非递归
更通用的非递归实现方法
第四十六章【互动】DFS经典题精讲
12月19日10:15 - 1月2日10:15
N皇后问题及程序结构的艺术
数独及搜索顺序的优化算法
第四十七章【互动】数据结构设计类问题
12月19日10:15 - 1月2日10:15
最小栈
最大栈
两个栈实现队列
两个队列实现栈
第四十八章【互动】外排序算法与数组合并类问题
12月19日10:15 - 1月2日10:15
外排序
三种K路归并算法
数组合并的相关问题
第四十九章【互动】区间型动态规划入门
12月19日10:15 - 1月2日10:15
区间型动态规划的题目特点
区间型动态规划的循环方式
三个例题入门区间动态规划
第五十章【互动】匹配型动态规划入门
12月26日10:15 - 1月9日10:15
匹配型动态规划的题目特点
匹配型动态规划的代码实现
三个例题入门匹配型动规
第五十一章【互动】划分型动态规划入门
12月26日10:15 - 1月9日10:15
划分型动态规划的题目特点
划分型动态规划的代码实现
三个例题入门划分型动规
第五十二章【互动】接龙型动态规划的二分解法
12月26日10:15 - 1月9日10:15
接龙型动态规划的题目特点
接龙型动态规划的代码实现
最长上升子序列(LIS)的二分解法
三个例题吃透接龙型动态规划