《程序员面试白皮书》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:逸超,虾米,笑笑等著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2015
  • ISBN:9787115401847
  • 页数:264 页
图书介绍:这是一本介绍程序员面试的参考书,通过一系列的实例介绍了数据结构、算法以及计算机专业的其他基础知识。同时,本书还在各章中及时回顾教材中的重点内容,书中的题目也很据参考价值,通过实例与知识点相结合的方式帮助读者掌握要领。除此之外,本书还将引导读者分析题目,帮助读者理清思路并最终解决问题。 陈冀康

第1章 简历、面试和Offer 1

1.1简历 1

1.1.1格式 2

1.1.2内容安排 2

1.1.3描述技巧 5

1.2面试 6

1.2.1 HR 7

1.2.2技术面试官 8

1.2.3老板 10

1.3 Offer 10

1.4常见问题 12

1.5工具箱 19

第2章 数组和字符串 27

2.1知识要点 27

2.1.1数组 27

2.1.2哈希表 29

2.1.3 String 31

2.2模式识别 31

2.2.1使用哈希表 31

2.2.2利用哈希表实现动态规划的思想 35

2.2.3 String相关问题的处理技巧 39

2.3工具箱 41

第3章 链表 49

3.1知识要点 49

3.2模式识别 50

3.2.1链表的基本操作 50

3.2.2哑节点 50

3.2.3 Runner和Chaser 52

3.2.4遍历并处理节点 56

3.2.5交换节点的问题 57

3.2.6同时操作两个链表 59

3.2.7倒序处理 60

3.3工具箱 64

第4章 栈和队列 67

4.1知识要点 67

4.1.1栈 67

4.1.2队列 68

4.2模式识别 68

4.2.1通过栈实现特殊顺序的读取 68

4.2.2 “Save for later”问题 72

4.2.3用栈解决自上而下结构的问题 74

4.3工具箱 79

第5章 树和图 83

5.1知识要点 83

5.1.1树 83

5.1.2字典树 86

5.1.3堆与优先队列 88

5.1.4图 89

5.1.5图的遍历 90

5.1.6单源最短路径问题 92

5.1.7任意两点之间的最短距离 93

5.2模式识别 93

5.2.1利用分而治之(D&C)策略判断树、图的性质 93

5.2.2树的路径问题 100

5.2.3树和其他数据结构的相互转换 104

5.2.4寻找特定节点 108

5.2.5图的访问 113

5.3工具箱 116

第6章 位操作 121

6.1知识要点 121

6.2模式识别 122

6.2.1基本的位操作 122

6.2.2位掩码 125

6.3工具箱 127

第7章 面向对象设计 129

7.1知识要点 129

7.1.1 设计题解答要领 129

7.1.2模拟面试 131

7.1.3抽象、面向对象和解耦(Decoupling) 134

7.1.4继承/组合/参数化类型 137

7.1.5设计模式 139

7.2模式识别 144

7.3工具箱 159

第8章 递归和动态规划 167

8.1知识要点 167

8.1.1构建从子问题到最终目标的方法 167

8.1.2递归的空间与时间成本 168

8.1.3自底向上与自顶向下 169

8.1.4算法策略 171

8.2模式识别 172

8.2.1用动态规划(自底向上)解决收敛结构问题 172

8.2.2最长子序列类型的问题 181

8.2.3用Memorization(自顶向下)解决收敛结构问题 190

8.2.4用回溯法(自上而下)解决发散结构问题 193

8.2.5用D&C策略解决独立子问题 201

第9章 排序和搜索 203

9.1知识要点 203

9.1.1常见的内排序算法 203

9.1.2常见的外排序算法 209

9.1.3快速选择算法 210

9.1.4二分查找 211

9.2模式识别 212

9.2.1动态数据结构的维护 212

9.2.2对于有序/部分有序容器的搜索,用二分查找 216

9.2.3数据范围有限、离散的排序问题 228

9.2.4 Scalability & Memory Limits问题 230

9.3工具箱 233

第10章 测试 235

10.1知识要点 235

10.1.1测试现实世界的物体、软件或函数 235

10.1.2故障排除 236

10.2模式识别 238

10.3工具箱 242

第11章 网络 245

11.1知识要点 245

11.1.1网络分层 246

11.1.2路由 246

11.1.3常用网络统计指标 247

11.1.4 TCP vs.UDP 248

11.2模式识别 251

11.3工具箱 254

第12章 计算机底层知识 257

12.1知识要点 257

12.1.1进程vs.线程 257

12.1.2上下文切换 259

12.1.3系统调用 259

12.1.4 Semaphore/Mutex 259

12.1.5死锁 260

12.1.6生产者消费者 260

12.1.7进程间通信 261

12.1.8逻辑地址/物理地址/虚拟内存 261

12.1.9文件系统 263

12.1.10实时vs.分时操作系统 263

12.1.11编译器 264