第1章 求职之前 1
1.1 了解自己 1
1.2 了解市场 3
1.3 掌握市场需要的技能 4
1.4 处理自己的在线资料 6
1.5 本章小结 6
第2章 求职过程 7
2.1 寻找公司并进行联系 7
2.2 面试过程 10
2.3 招聘者的角色 11
2.4 工作邀约和协商 12
2.5 本章小结 15
第3章 编程问题的解答思路 16
3.1 面试过程 16
3.2 解决问题 19
3.3 分析解决方案 21
3.4 本章小结 25
第4章 链表 26
4.1 链表的种类 26
4.2 基本链表操作 28
4.3 链表问题 31
4.4 本章小结 54
第5章 树和图 55
5.1 树 55
5.2 图 61
5.3 二叉树问题 62
5.4 本章小结 67
第6章 数组和字符串 68
6.1 数组 68
6.2 字符串 72
6.3 数组和字符串问题 74
6.4 本章小结 90
第7章 递归 92
7.1 理解递归 92
7.2 递归问题 95
7.3 本章小结 109
第8章 并发 110
8.1 基本线程概念 110
8.2 并发问题 115
8.3 哲学家进餐 120
8.4 本章小结 123
第9章 面向对象编程 124
9.1 基础知识 124
9.2 构造与析构 127
9.3 面向对象编程问题 127
9.4 本章小结 132
第10章 数据库 133
10.1 数据库基础 133
10.2 数据库问题 138
10.3 本章小结 142
第11章 其他编程主题 143
11.1 图形学 143
11.2 位操作 144
11.3 图形学和位操作问题 146
11.4 本章小结 157
第12章 计数、测量和排序难题 158
12.1 处理难题 158
12.2 难题 162
12.3 本章小结 172
第13章 图形和空间方面的难题 173
13.1 先画下来 173
13.2 图形和空间问题 174
13.3 本章小结 184
第14章 知识问题 185
14.1 准备 185
14.2 问题 186
14.3 本章小结 191
第15章 非技术问题 192
15.1 为什么要问非技术问题 192
15.2 问题 193
15.3 本章小结 199
第16章 结束语 200
附录A 简历 201