第一节(2017.8.29 3小时)
数组、链表(Array、LinkedList)
堆栈、队列(Stack、Queue)
优先队列(PriorityQueue)
哈希表(HashTable)
高频面试题讲解:2-sum、3-sum、有序列合并、括号配对、链表反转、滑动窗口
第二节(2017.9.5 3小时)
树、二叉树、二叉搜索树(Tree、Binary Search Tree)
二叉树遍历(Preorder/Inorder/Postorder Traversal)
图(Graph)
递归、回溯(Recursion/Backtrace)
模拟算法(Simulation)
高频面试题讲解:二叉树的序列化、数独问题、最近公共祖先、括号对生成、排列组合等
第三节(2017.9.7 3小时)
递归、回溯(Recursion/Backtrace)
分治(Divide & Conquer)
二分查找(Binary Search)
深度优先搜索(Depth-first search)
广度优先搜索(Breadth-first search)
高频面试题讲解:二叉树系列高频题、地图孤岛、平方根等
第四节(2017.9.12 3小时)
高级DFS和BFS
搜索剪枝
搜索状态压缩和加速
布隆过滤器(BloomFilter)
字母书(Trie)
高频面试题讲解:高级N皇后问题、word ladder、01矩阵等
第五次课(2017.9.14 3小时)
动态规划(Dynamic Programming)
动态规划的思维方式和经典代码框架
并查集(Disjoint Set)
位运算的运用(Bitwise operations)
高频面试题讲解:最长上升子序列、股票买卖、最大子序列和(乘积)、最大子矩阵等