九章算法班 - 课程大纲
第1章 Algorithm Interview && Coding Style
· 通过strStr这一道常见面试题讲解面试中的常见误区
· 从面试官的角度分析面试的考察点
· 从Subset中了解算法面试中模板的重要性
· 面试常见问题答疑
第2章 二分搜索 Binary Search
· 学习Binary Search的通用模板,不再死循环
· 讲解Search in Rotated Sorted Array等5-7道高频二分搜索题
第3章 二叉树问题与分治算法 Binary Tree & Divide Conquer
· 二叉树的深度优先遍历 Binary Tree DFS Traversal
· 先序/中序/后序 Preorder / inorder / postorder
· 分治 Divide & Conquer
· DFS模板 Introduce DFS Template
· 二叉树的宽度优先遍历 Binary Tree BFS Traversal
· BFS模板 Introduce BFS template
· 二叉搜索树 Binary Search Tree
第4章 动态规划 Dynamic Programming I
· 动态规划算法的适用条件
· 动态规划算法的四个解题要素
· 动规的两种实现方式:记忆化搜索 vs 循环递推
· 面试中动态规划的常见类型
· 坐标型动态规划
第5章 动态规划 Dynamic Programming II
· 单序列动态规划(下) Sequnece DP
· 双序列动态规划 Two Sequences DP
第6章 链表 Linked List
· 介绍Dummy Node在链表问题中的运用 Introduce Dummy Node in Linked List
· 你必须知道的几点Linked List的常用技巧 Basic skills in Linked List you should know
· 两根指针算法 Two pointers
· 常见问题讲解 Frequent Questions
第7章 数组与数 Array & Numbers
· 旋转排序数组相关问题与三步翻转法的运用 Rotated Sorted Array & 3-step Reversion
· 两个排序数组的中位数 Median of Two Sorted Array
· 子数组相关问题 SubArray
· 两根指针与x-sum问题 Two Pointers & x-sum
· 分割数组相关问题 Partition Array
第8章 数据结构 Data Structure
· 线性数据结构
· 队列的原理、实现和运用 Queue
· 栈的原理、实现和运用 Heap
· 哈希表的原理、实现和运用 HashMap
· 树形数据结构
· 堆的原理、实现和运用 Heap
第9章 图与搜索 Graph & Search
· 图上的宽度优先搜索 Graph BFS
· 拓扑排序 Topological Sorting
· 组合类深度优先搜索 Combination Related DFS
· 排列类深度优先搜索 Permutation Related DFS
.........................................................................................................................................................................
·面试误区:
·做过的题、简单的题肯定能过。
·算法想出来了就能过。
·代码写出来了就能过。
·面试中考察的基本功:
·程序风格Coding Style
·变量名命名,缩进,括号
·Coding习惯,Bug Free
·异常检测,边界处理
·沟通
·让面试官时刻明白你的意图
·闷头就开始写 VS 没写一句话就BB半天
·测试
·主动给出Testcase,Cover掉所有情况
·你真的会面试么?
·做题之前,是否在白纸上写过一遍
·不停的在LintCode提交知道AC?
·刷200多题,吃透了几题?
·做过的题是不是还可能不会做?
·题目不会的时候直接说不会么?
·面试官是Co-worker
·是不是觉得面试官在为难你?
·Follow Up Question
·算法,永远的痛
·题做了很多,但就是记不住解法
·从来就没有弄明白过动态规划是怎么回事
·这题好像见过,不过还是不知道怎么做
·LintCode,CC150都刷了,新题还是跪
·网上的解答那么多次,到底哪个是对的?
·一定要答出O(n)的方法么?O(nlogn)的可以么?
·到底刷到什么程度去面试才够?
·如何准备面试算法题
·“面试”算法题,其实很简单
·考查范围很窄,数来数去就几个内容
·难度不会太深,更重要的是Coding质量
·某位商学院转行的小伙伴在我们的帮助下花了30天从0基础算法搞定常见算法最后拿到Google、Facebook等一流公司Offer
·在刷题时,总结、归类相似题目
·找出适合同一类题目的模板程序
·正确的解题总结报告
### 解题报告
xxx一句话概括这个题你要干嘛
### 核心思路
xxxxxxx
### 时间复杂度 & 空间复杂度
xxxxxx
### 有哪些我做过的相关题目
xxxxxxx
### 哪些条件提示我想到了这个题的解法
xxxxxxxxx
·好钢用在刀刃上
·不要把时间浪费在那些基本不会考而你又很心虚的内容上,比如KMP,红黑树,AVL,ACM竞赛题