如何找到课程群?
付费学员可以加入学员专享微信群,参加老师、助教、同学们的答疑和讨论。付费学员可以在官网-我的课程查看到微信群信息。http://www.jiuzhang.com/accounts/profile/
a.CS简历攻略 Resume
b.算法面试大揭秘 Algorithm Interview
c.算法的学习方法指导
a.数据 Date与变量 Variable
a.如何写好if语句
b.for 循环和 while 循环
a.函数的定义及使用
b.函数的参数传递
a.什么是面向对象
b.类和对象的概念
a.IDE介绍:IntelliJ
b.int变量及其范围
c.char变量,什么是Unicode
d.boolean变量的与或非运算
e.如何写好if语句
f.for循环和while循环
a.character to integer
b.数组的最大值The maximum value of the array
c.打印矩阵Print the matrix
d.reverse integer
a.变量 Variable
b.程序控制流 Control Flow
a.什么是算法?Algorithm
a.列表的概念及常用操作
b.元组的概念及常用操作
a.字符串的概念及常用操作
b.字符和 Unicode
a.计算机内存模型
a.字符串 String
b.函数 Function
c.类和对象 Class & Object
d.什么是面向对象 Object Oriented
a.convert lower case to upper case
b.判断回文字符串
c.convert string to integer
a.what is reference
b.basic data struct
a.程序控制流 Control Flow
b.方法 Method / 函数 Function
c.比特 Bit 与 字节 Byte
d.字符 Character 的 编码 Encoding
e.字符的基本操作
a.数组 Array
b.列表 List
c.字符串 String
a.伪代码 Pseudo Code
b.模拟法 Simulation
a.字符串 String
a.复杂度 Complexity 分析
b.双指针算法 Two Pointers
i.相向双指针 Face-to-face Two Pointers
ii.背向双指针 Back-to-back Two Pointers
iii.同向双指针 Face-to-back Two Pointers
滑动窗口 Sliding Window
算法模板
c.暴力枚举法 Brute-force Enumeration
d.贪心法 Greedy Algorithm
a.进制转换 Base Conversion
a.链表的构建
b.链表的常用操作
a.什么是Reference
b.链表及其CRUD操作
c.Linked List v.s. Array List
a.Find node in linked list
b.Insert into sorted linked list
c.Reverse linked list
d.Remove n-th node from last
e.Merge two sorted linked list
a.类 Class & 对象 Object
b.面向对象三要素
i.封装 Encapsulation
ii.继承 Inheritance
iii.多态 Polymorphism
c.静态成员 Static Member
d.枚举类 Enum
e.抽象类 Abstract Class
f.接口类 Interface
g.访问控制修饰符 Access Modifier
i.Getter 与 Setter
h.构造方法 Constructor
i.this & super
j.引用 Reference & 拷贝 Copy
k.类图基础 Class Diagram
a.变量调用前缀 Data Structure
b.数组 Array
a.重载方法 Overloading Methods
b.算法类 Solution Class & 主函数 Main Function
c.包装类 Wrapper Class
d.代码风格 Coding Style
i.变量调用前缀
ii.命名范式 Naming Paradigm
a.栈的实现及常用操作
b.栈在操作系统中的应用
a.队列的实现及常用操作
b.Python 中的 queue 模块
a.什么是数据结构
b.栈及其实现
c.队列及其实现
a.括号匹配Parentheses match
b.栈的两种实现方式
c.队列的实现
a.二叉树的定义
b.二叉树的构建
a.深度优先遍历的实现
b.按层次遍历
a.什么是递归 ?
b.递归的三要素
c.递归算法的时间和空间复杂度分析
a.前序遍历Pre-order traversal
b.中序遍历Mid-order traversal
c.后序遍历Post-order traversal
a.最火的数据结构:树
b.什么是递归
c.树的三种遍历方式
d.递归算法的时间空间复杂度分析
a.宽度优先遍历的实现
b.按层次遍历
a.求树的高度
b.求所有叶子结点的和
c.求所有根到叶子的路径
d.翻转二叉树
a.元组 Tuple
b.列表 List
i.数组列表 Array List
ii.链表 Linked List
单向链表 Singly Linked List
循环链表 Circular Linked List
双向链表 Doubly Linked List
<=> 双端队列 Deque
队列 Queue
栈 Stack
c.二叉树 Binary Tree
a.同向双指针 Face-to-back Two Pointers
i.快慢指针 Fast & Slow Pointers
ii.定距指针 Fixed-distance Pointers
b.同向三指针 Face-to-back Three Pointers
i.定距指定 Fixed-distance Pointers
c.宽度优先搜索 Breadth-First Search
d.分治法 Divide & Conquer
i.深度优先搜索 Depth-First-Search
a.递推法
b.递归法
a.递推法
b.递归法
a.什么是 BST ?
b.BST 的常用操作
c.BST 在实际系统中的应用
a.什么是 BST ?
b.BST 的常用操作
c.BST 在实际系统中的应用
a.二叉树 Binary Tree
i.二叉搜索树 Binary Search Tree
ii.平衡二叉树 Balanced Binary Tree
完全二叉树 Complete Binary Tree
红黑树 Red-Black Tree
b.哈希表 Hash Table
i.哈希集合 Hash Set
ii.哈希映射 Hash Map / 字典 Dictionary
a.深度优先搜索 Depth-First-Search
i.递归 Recursion
ii.辅助栈 Stack
b.搜索问题的算法选择
a.集合的定义及常用操作
b.字典的定义及常用操作
c.集合和字典的实现
a.重哈希 Rehash
b.开散列 Open hash
c.闭散列 Closed hash
a.选择排序Select Sort
b.插入排序Insert sorting
c.冒泡排序Bubbling sorting
a.归并排序的算法思想
b.归并排序的 Python 实现
a.快速排序的算法思想
b.快速排序的 Python 实现
a.插入排序Insert sorting
b.选择排序Select Sort
c.归并排序Merge sorting
d.快速排序Quick sort
e.Comparator的使用Use of Comparator
a.sort colors
b.重排数组构成最大数
a.哈希表 Hash Table
i.哈希集合 Hash Set
ii.哈希映射 Hash Map / 字典 Dictionary
a.同向双指针 Face-to-back Two Pointers
i.平行指针 Parallel Pointers
b.排序算法 Sorting Algorithms
i.归并排序 Merge Sort
ii.快速排序 Quick Sort
快速选择 Quick Select
彩虹排序 Rainbow Sort
c.比较器 Comparator & 可比类 Comparable
a.如何确定自己的算法是正确的?
b.如何套出面试官要求的时间复杂度?
c.如何知道自己Hire or No Hire?
a.为什么Coding Style很重要
b.什么是Good Coding Style,什么是Bad Coding Style
a.一个技巧教你避免99%的Bug
b.出现Bug以后如何快速Debug
a.算法面试精选100题(免费福利)
a.为什么不需要学Manacher's Algorithm
b.基于双指针的算法与背向双指针算法简介
c.有哪些Bad Coding Style容易踩,面试真实案例分析
d.基于动态规划的算法与区间型动态规划简介
a.为什么不需要学KMP算法
b.Rabin-karp算法与哈希函数Hash Function
a.如何判断两个字符串是否相等
b.如何遍历字符串
c.null和""有什么区别
a.时间复杂度Time complexity
b.空间复杂度Spatial complexity
c.编程复杂度Programming complexity
d.思维复杂度Complexity of thinking
a.背向双指针Back-facing double hands
b.同向双指针Codirectional double pointer
c.相向双指针Opposite double pointer
a.哈希表的做法
b.排序+双指针的做法
c.哈希表与双指针的比较
a.快速排序算法Quick sort algorithm
b.归并排序算法Merge sort algorithm
a.什么时候死循环
b.为什么能做到通用
a.数据结构设计
b.不同的二元组个数
c.两数之和小于等于
d.两数之和大于等于
e.三角形个数
f.两数之和最接近
g.三数之和
h.三数之和最接近
i.四数之和
j.K数之和
a.2-Part-Partitionvs3-Part-Partition
b.彩虹排序算法
c.通过移0的问题看相向双指针与同向双指针的区别
a.两个队列的实现方法
b.DummyNode的实现方法
c.一个队列的实现方法
a.通过两道实战真题理解分治法和遍历法的区别
a.BST是什么
b.BST Iterator的两种实现方法
a.DFS vs BFS在连通块问题上的优劣
b.劝分不劝合的编码理论
a.什么是简单图
b.复杂度最短路径有什么算法
c.最长路径用什么算法
d.什么是隐式图
e.通用的BFS模板
f.80%的人都会写错的BFS写法
a.DFS vs BFS在拓扑排序上的优劣
b.拓扑排序的五个考点
i.问有没有拓扑排序
ii.求任意一个拓扑排序
iii.求最小的拓扑排序
iv.求拓扑排序是否唯一
a.理解什么是搜索中的回溯
a.全局变量在代码中的危害
a.选代表vs哈希表
a.DFS的解法
b.状态压缩型动态规划
c.随机化算法
a.开散列Open Hash vs 闭散列Closed Hash
a.两种组合类DFS的实现方法
b.使用组合类DFS算法解决K数之和问题
c.DFS的框架模板
a.动态规划四要素是什么
a.滑动窗口求和
b.K次替换后最长的重复字符子串
a.链表求交、链表求环
b.链表中位点
a.快速幂算法Fast exponentiation algorithm
b.辗转相除法Tossing and turning phase division
c.两个排序数组的中位数Median of two sorted arrays
a.分解质因数Decomposition of prime factors
b.分块检索法Chunked retrieval method
a.什么是序列化与反序列化
a.双向宽度优先搜索到底优化了多少
b.如何优雅的实现双向宽度优先搜索
a.各自有什么准备策略?
b.什么情况该使用哪种方式
a.遇到新题的通用解题技巧——时间复杂度倒推算法
b.Subarray 问题的必备技巧——前缀和 PrefixSum
a.高频面试算法知识点 Cheat Sheet
b.高频数据结构知识点 Cheat Sheet
c.时间复杂度与算法对应表 Cheat Sheet
d,高频算法模板 Cheat Sheet
各自有什么准备策略?
什么情况该使用哪种方式
遇到新题的通用解题技巧——时间复杂度倒推算法
Subarray 问题的必备技巧——前缀和 PrefixSum
高频面试算法知识点 Cheat Sheet
高频数据结构知识点 Cheat Sheet
时间复杂度与算法对应表 Cheat Sheet
高频算法模板 Cheat Sheet
a.暴力法Violence
b.前缀和优化 Prefixes and Optimizations
c.二分法 Dichotomy
d.同向双指针 Codirectional Double Pointer
a.如何分析与实现代码细节
a.二分答案的思路要点
b.不同数组上的同向双指针
a.暴力法
b.前缀和优化
c.二分法
d.同向双指针
a.如何分析与实现代码细节
a.二分答案的思路要点
b.不同数组上的同向双指针
a.经典贪心问题:会议室问题
b.高盛OA必考模拟题:奇怪的排序(Strange Sort)
c.普通的模拟问题:Pick Carrots
a.运行时间的上限是多少
b.数据范围与算法的推导关系
a.不一样的二分查找:搜索旋转排序数组
b.二分答案:经典问题 Wood Cut
a.隔板法的适用情况
b.隔板法例题:股票问题 III
a.分层BFS的写法
b.利用hashmap(dict)对代码进行优化
c.Java中如何将二维坐标作为Hashmap/Hashset的key
a.递归(Recursion)三要素是什么
b.通过优化传入参数与返回值快速解决问题
a.Follow up:如何找到图中第二长的直径
a.二叉树中最深的节点
a.分治型DFS如何形象的记忆?
b.退出条件是怎样的?
a.Word Break II
分治型DFS如何形象的记忆?
退出条件是怎样的?
Word Break II
a.滚动数组算法Scrolling array algorithm
a.01背包基本概念Basic concept of backpack
b.01背包最优解法Backpack optimal solution
a.完全背包基本概念Complete backpack basic concept
b.完全背包最优解法Complete backpack optimal solution
a.骰子类概率动态规划Dice Class Probabilistic Dynamic Programming
b.骑士类概率动态规划Knight Class Probabilistic Pynamic Programming
a.图是否是树 II
a.元素是否在同一个集合中:连接图 I
b.集合的大小:连接图 II
c.集合的数量:连接图 III
a.F家真题:单词的添加与查找
a.美团真题:识别字符串
a.查询单词是否出现
b.查询前缀是否出现
a.BFS:434. 岛屿的个数
b.Follow Up :434. 岛屿的个数 II
c.删除与合并:1014. 打砖块
a.查询集合内部元素:805. 最大关联集合
a.F家:论文查重
BFS:434. 岛屿的个数
Follow Up :434. 岛屿的个数 II
删除与合并:1014. 打砖块
查询集合内部元素:805. 最大关联集合
F家:论文查重
a.G家:最大距离
a.如何避免重复运算
b.前缀长度增加与字典树指针下移
c.辅助动态规划:K 步编辑 (G家,Airbnb)
d.辅助复杂DFS:单词搜索 III
a.存放所有单词的集合:单词矩阵 (G家)
a.G家:最大距离
a.如何避免重复运算
b.前缀长度增加与字典树指针下移
c.辅助动态规划:K 步编辑 (G家,Airbnb)
d.辅助复杂DFS:单词搜索 III
a.存放所有单词的集合:单词矩阵 (G家)
a.单调栈的最常见使用场景
b.单调栈模板讲解
a.超级经典的问题:滑动窗口最大值
b.单调队列和单调栈的比较
a.超高频题目:区间合并
b.G家:会议室 II
c.Airbnb:员工空闲时间
a.直方图的最大矩形覆盖
b.F家:最大矩形
a.G家:奇偶跳
b.图上DP 与 拓扑排序 的关系
a.单调栈与单调队列的联系与区别
b.什么时候使用单调队列
c.G家:滑动窗口的最大值
a.直方图的最大矩形覆盖
b.F家:最大矩形
a.G家:奇偶跳
b.图上DP 与 拓扑排序 的关系
a.单调栈与单调队列的联系与区别
b.什么时候使用单调队列
c.G家:滑动窗口的最大值
a.前缀优化解法
b.单调栈解法
c.同向双指针解法
a.最常见的heap使用情景:找最值
a.雇佣K个人的最低费用
b.数据流的中位数
a.将数据流变为多个不相交区间
前缀优化解法
单调栈解法
同向双指针解法
最常见的heap使用情景:找最值
雇佣K个人的最低费用
数据流的中位数
将数据流变为多个不相交区间
a.0-index定义法0-index definition method
b.1-index定义法1-index definition method
c.两种定义方法的优劣势
a.前缀和数组的定义
b.如何求子矩阵之和
c.二维前缀和例题讲解
a.前缀和与预处理
b.二分答案与前缀和的结合考察
a.如何解决选择K堆时出现的可能无法合并为1堆的问题
b.选择递推还是递归解决?
a.平行四边形法则
b.代码实现
a.G家:摘水果
b.美团:字符串划分
a.寻找峰值
b.从一维数组到二维矩阵的FollowUp:寻找峰值 II
a.Kruskal 算法流程
b.Kruskal 算法模板
a.Prim 算法介绍及代码
a.Google:LintCode 1248
b.FaceBook:LintCode 722
a.字符串处理String handling
b.递归Recursion
c.栈Warehouse
a.单点修改
b.区间查询
a.区间求和 II
b.约翰的生意
付费学员可以加入学员专享微信群,参加老师、助教、同学们的答疑和讨论。付费学员可以在官网-我的课程查看到微信群信息。http://www.jiuzhang.com/accounts/profile/
和九章的其他算法课程类似,我们使用 Zoom 作为直播软件,您在订阅答疑服务之后,将在网站右上角“我的课程”中看到答疑课的入口。在有答疑课的时间点击“进入课堂”按钮即可进入直播间。进入直播间之后,您可以采用文字提问的方式对老师进行提问,如果上课人少的时候,还可以向老师申请开语音的方式进行语音提问。老师将用语音,画图,敲代码等多样的形式回复您的问题。
课程在付费之后7天之内可以退费,退回费用等于剩余课程/总课程(不含试听章节)*所交费用,如果同时购买了含随时看的增值服务的,整体不予退款。