内容简介
第1章 简历、面试和Offer
1.1简历
1.1.1格式
1.1.2内容安排
1.1.3描述技巧
1.2面试
1.2.1 HR
1.2.2技术面试官
1.2.3老板
1.3 Offer
1.4常见问题
1.5工具箱
第2章 数组和字符串
2.1知识要点
2.1.1数组
2.1.2哈希表
2.1.3 String
2.2模式识别
2.2.1使用哈希表
2.2.2利用哈希表实现动态规划的思想
2.2.3 String相关问题的处理技巧
2.3工具箱
第3章 链表
3.1知识要点
3.2模式识别
3.2.1链表的基本操作
3.2.2哑节点
3.2.3 Runner和Chaser
3.2.4遍历并处理节点
3.2.5交换节点的问题
3.2.6同时操作两个链表
3.2.7倒序处理
3.3工具箱
第4章 栈和队列
4.1知识要点
4.1.1栈
4.1.2队列
4.2模式识别
4.2.1通过栈实现特殊顺序的读取
4.2.2 “Save for later”问题
4.2.3用栈解决自上而下结构的问题
4.3工具箱
第5章 树和图
5.1知识要点
5.1.1树
5.1.2字典树
5.1.3堆与优先队列
5.1.4图
5.1.5图的遍历
5.1.6单源最短路径问题
5.1.7任意两点之间的最短距离
5.2模式识别
5.2.1利用分而治之(D&C)策略判断树、图的性质
5.2.2树的路径问题
5.2.3树和其他数据结构的相互转换
5.2.4寻找特定节点
5.2.5图的访问
5.3工具箱
第6章 位操作
6.1知识要点
6.2模式识别
6.2.1基本的位操作
6.2.2位掩码
6.3工具箱
第7章 面向对象设计
7.1知识要点
7.1.1 设计题解答要领
7.1.2模拟面试
7.1.3抽象、面向对象和解耦(Decoupling)
7.1.4继承/组合/参数化类型
7.1.5设计模式
7.2模式识别
7.3工具箱
第8章 递归和动态规划
8.1知识要点
8.1.1构建从子问题到最终目标的方法
8.1.2递归的空间与时间成本
8.1.3自底向上与自顶向下
8.1.4算法策略
8.2模式识别
8.2.1用动态规划(自底向上)解决收敛结构问题
8.2.2最长子序列类型的问题
8.2.3用Memorization(自顶向下)解决收敛结构问题
8.2.4用回溯法(自上而下)解决发散结构问题
8.2.5用D&C策略解决独立子问题
第9章 排序和搜索
9.1知识要点
9.1.1常见的内排序算法
9.1.2常见的外排序算法
9.1.3快速选择算法
9.1.4二分查找
9.2模式识别
9.2.1动态数据结构的维护
9.2.2对于有序/部分有序容器的搜索,用二分查找
9.2.3数据范围有限、离散的排序问题
9.2.4 Scalability & Memory Limits问题
9.3工具箱
第10章 测试
10.1知识要点
10.1.1测试现实世界的物体、软件或函数
10.1.2故障排除
10.2模式识别
10.3工具箱
第11章 网络
11.1知识要点
11.1.1网络分层
11.1.2路由
11.1.3常用网络统计指标
11.1.4 TCP vs.UDP
11.2模式识别
11.3工具箱
第12章 计算机底层知识
12.1知识要点
12.1.1进程vs.线程
12.1.2上下文切换
12.1.3系统调用
12.1.4 Semaphore/Mutex
12.1.5死锁
12.1.6生产者消费者
12.1.7进程间通信
12.1.8逻辑地址/物理地址/虚拟内存
12.1.9文件系统
12.1.10实时vs.分时操作系统
12.1.11编译器