剑指Offer

出版日期:2014-6-1
ISBN:9787121232456
作者:何海涛
页数:298页

书籍目录

第1章  面试的流程
1
1.1 面试官谈面试
1
1.2 面试的三种形式
2
1.2.1 电话面试
2
1.2.2 共享桌面远程面试
3
1.2.3 现场面试
4
1.3 面试的三个环节
5
1.3.1 行为面试环节
5
应聘者的项目经验
6
应聘者掌握的技能
7
回答“为什么跳槽”
8
1.3.2 技术面试环节
10
扎实的基础知识
10
高质量的代码
11
清晰的思路
14
优化效率的能力
15
优秀的综合能力
16
1.3.3 应聘者提问环节
17
1.4 本章小结
18
第2章 面试需要的基础知识
20
2.1 面试官谈基础知识
20
2.2 编程语言
22
2.2.1 C++
22
面试题1:赋值运算符函数
24
经典的解法,适用于初级程序员
25
考虑异常安全性的解法,高级程序员必备
26
2.2.2 C#
27
面试题2:实现Singleton模式
31
不好的解法一:只适用于单线程
31
不好的解法二:可用于多线程但效率不高
32
可行的解法:同步锁前后两次判断
33
推荐的解法一:利用静态构造函数
34
推荐的解法二:按需创建实例
34
解法比较
35
2.3 数据结构
36
2.3.1 数组
36
面试题3:二维数组中的查找
38
2.3.2 字符串
42
面试题4:替换空格
44
O(n2)的解法,不足以拿到Offer
45
O(n)的解法,搞定Offer就靠它
46
2.3.3 链表
49
面试题5:从尾到头打印链表
51
2.3.4 树
53
面试题6:重建二叉树
55
2.3.5 栈和队列
58
面试题7:用两个栈实现队列
59
2.4 算法和数据操作
62
2.4.1 查找和排序
63
面试题8:旋转数组的最小数字
66
2.4.2 递归和循环
71
面试题9:斐波那契数列
73
效率很低的解法,面试官不会喜欢
73
面试官期待的实用解法
74
O(logn)但不够实用的解法
74
解法比较
75
2.4.3 位运算
77
面试题10:二进制中1的个数
78
可能引起死循环的解法
79
常规解法
79
能给面试官带来惊喜的解法
80
2.5 本章小结
82
第3章 高质量的代码
84
3.1 面试官谈代码质量
84
3.2 代码的规范性
86
3.3 代码的完整性
87
从3方面确保代码的完整性
87
3种错误处理的方法
88
面试题11:数值的整数次方
90
自以为题目简单的解法
90
全面但不够高效的解法,离Offer已经很近了
90
全面又高效的解法,确保能拿到Offer
92
面试题12:打印1到最大的n位数
94
跳进面试官陷阱
94
在字符串上模拟数字加法
94
把问题转换成数字排列
97
面试题13:在O(1)时间删除链表结点
99
面试题14:调整数组顺序使奇数位于偶数前面
102
只完成基本功能的解法,仅适用于初级程序员
102
考虑可扩展性的解法,能秒杀Offer
104
3.4 代码的鲁棒性
106
面试题15:链表中倒数第k个结点
107
面试题16:反转链表
112
面试题17:合并两个排序的链表
114
面试题18:树的子结构
117
3.5 本章小结
121
第4章 解决面试题的思路
123
4.1 面试官谈面试思路
123
面试题19:二叉树的镜像
125
4.2 画图让抽象问题形象化
125
面试题20:顺时针打印矩阵
127
4.3 举例让抽象问题具体化
131
面试题21:包含min函数的栈
132
面试题22:栈的压入、弹出序列
134
面试题23:从上往下打印二叉树
137
面试题24:二叉搜索树的后序遍历序列
140
面试题25:二叉树中和为某一值的路径
143
4.4 分解让复杂问题简单化
146
面试题26:复杂链表的复制
147
面试题27:二叉搜索树与双向链表
151
面试题28:字符串的排列
154
4.5 本章小结
158
第5章 优化时间和空间效率
160
5.1 面试官谈效率
160
5.2 时间效率
162
面试题29:数组中出现次数超过一半的数字
163
基于Partition函数的O(n)算法
163
利用数组特点的O(n)算法
165
解法比较
166
面试题30:最小的k个数
167
O(n)的算法,只当可以修改输入数组时可用
167
O(nlogk)的算法,适合处理海量数据
168
解法比较
169
面试题31:连续子数组的最大和
171
举例分析数组的规律
171
应用动态规划法
173
面试题32:从1到n整数中1出现的次数
174
不考虑效率的解法,想拿Offer有点难
174
明显提高效率的解法,让面试官耳目一新
175
面试题33:把数组排成最小的数
177
5.3 时间效率与空间效率的平衡
181
面试题34:丑数
182
逐个判断整数是不是丑数的解法
182
创建数组保存已经找到的丑数的解法
183
面试题35:第一个只出现一次的字符
186
面试题36:数组中的逆序对
189
面试题37:两个链表的第一个公共结点
193
5.4 本章小结
196
第6章 面试中的各项能力
198
6.1 面试官谈能力
198
6.2 沟通能力和学习能力
200
沟通能力
200
学习能力
200
善于学习、沟通的人也善于提问
201
6.3 知识迁移能力
203
面试题38:数字在排序数组中出现的次数
204
面试题39:二叉树的深度
207
重复遍历结点的解法,不足以打动面试官
209
只遍历结点一次的解法,正是面试官喜欢的
209
面试题40:数组中只出现一次的数字
211
面试题41:和为s的两个数字VS和为s的连续正数序列
214
面试题42:翻转单词顺序 VS左旋转字符串
218
6.4 抽象建模能力
222
面试题43:n个骰子的点数
223
基于递归求骰子点数,时间效率不够高
223
基于循环求骰子点数,时间性能好
224
面试题44:扑克牌的顺子
226
面试题45:圆圈中最后剩下的数字
228
经典的解法,用循环链表模拟圆圈
229
创新的解法,拿到Offer不在话下
230
6.5 发散思维能力
232
面试题46:求1+2+…+n
233
利用构造函数求解
234
利用虚函数求解
234
利用函数指针求解
235
利用模板类型求解
236
面试题47:不用加减乘除做加法
237
面试题48:不能被继承的类
239
常规的解法:把构造函数设为私有函数
239
新奇的解法:利用虚拟继承
240
6.6 本章小结
241
第7章 两个面试案例
243
7.1 案例一:(面试题49)把字符串转换成整数
244
7.2 案例二:(面试题50)树中两个结点的最低公共祖先
252
第8章 英文版新增面试题
261
8.1 数组
261
面试题51:数组中重复的数字
261
面试题52:构建乘积数组
263
8.2 字符串
265
面试题53:正则表达式匹配
265
面试题54:表示数值的字符串
267
面试题55:字符流中第一个不重复的字符
269
8.3 链表
270
面试题56:链表中环的入口结点
270
面试题57:删除链表中重复的结点
273
8.4 树
275
面试题58:二叉树的下一个结点
275
面试题59:对称的二叉树
277
面试题60:把二叉树打印成多行
278
面试题61:按之字形顺序打印二叉树
280
面试题62:序列化二叉树
283
面试题63:二叉搜索树的第k个结点
285
面试题64:数据流中的中位数
286
8.5 栈和队列
290
面试题65:滑动窗口的最大值
290
8.6 回溯法
294
面试题66:矩阵中的路径
294
面试题67:机器人的运动范围
296

作者简介

《剑指Offer——名企面试官精讲典型编程题(纪念版)》是为纪念本书英文版全球发行而推出的特殊版本,在原版基础上新增大量本书英文版中的精选题目,系统整理基础知识、代码质量、解题思路、优化效率和综合能力这5个面试要点。全书分为8章,主要包括面试流程:讨论面试每一环节需要注意的问题;面试需要的基础知识:从编程语言、数据结构及算法三方面总结程序员面试知识点;高质量代码:讨论影响代码质量的3个要素(规范性、完整性和鲁棒性),强调高质量代码除完成基本功能外,还能考虑特殊情况并对非法输入进行合理处理;解题思路:总结编程面试中解决难题的有效思考模式,如在面试中遇到复杂难题,应聘者可利用画图、举例和分解这3种方法将其化繁为简,先形成清晰思路再动手编程;优化时间和空间效率:读者将学会优化时间效率及空间换时间的常用算法,从而在面试中找到最优解;面试必备能力:总结应聘者如何充分表现学习和沟通能力,并通过具体面试题讨论如何培养知识迁移、抽象建模和发散思维能力;综合面试案例:总结哪些面试举动是不良行为,而哪些表现又是面试官所期待的行为;英文版面试题增补,优选久经欧美知名企业面试考验的经典题目,帮助国内读者开阔视野、增补技能。
《剑指Offer——名企面试官精讲典型编程题(纪念版)》适合即将走向工作岗位的大学生阅读,也适合作为正在应聘软件行业的相关就业人员和计算机爱好者的参考书。


 剑指Offer下载 更多精彩书评



发布书评

 
 


精彩书评 (总计1条)

  •     书中提到,面试好的有的工作能力一般,面试一般的有的工作能力好。面试只是个敲门砖,作者是希望通过这本书提高读者的各种能力,包括数据结构、算法、时间效率、空间效率、知识迁移能力、沟通能力等。面试题的测试用例在工作中非常有用,边界值和非法值是程序员容易忽略的,写新函数的时候要记得使用哦。

精彩短评 (总计38条)

  •     选题用心,讲解细致……该不会还是不会= =
  •     希望明天的面试可以过,加油!
  •     题目经典 多写几遍 早点学习更好了
  •     看来国内面试 和国外面试都一样哇 ^ ^ 各种考察到 例题又不至于太多 喧宾夺主 以题讲点~
  •     看过两遍,感觉还是很有收获的。题目主要还是参考思路,代码是用C写的,感觉写的不是非常好。
  •     求职必备,不多说
  •     突击面试非常有效
  •     求职宝典!
  •     看算法题相关的书真的很有意思啊,这是一本很不错的书,值得一读再读!
  •     良心之作
  •     求职必备,结合leetcode
  •     面试必备!
  •     好书,找工作的时候挺有帮助。
  •     想找工作的,这是必看的书。
  •     不错,尤其在找工作的时候
  •     不错的书,题目讲的都挺清晰易懂,讲解题目时也穿插了不少数据结构和算法知识的讲解,值得多看几次,面试前抱佛脚亦可
  •     囫囵吞枣第一遍,看书中模拟面试的那章时感觉惊心动魄。风格很好,且有简有难——简单占多数,习惯很重要!
  •     推荐配合牛客网的剑指offer编程训练学习此书,我花了差不多1周多就把题目全部AC了。 纪念版相比之前的版本多了一些题目,挺好的。
  •     重在多写
  •     题目与题解很经典。 看出作者很用心
  •     蛮好的,至少让我知道自己的不足在哪里,并且对面试过程有了一个大概的底。
  •     找实习之前看过半本……
  •     出来混总要还的
  •     较好的划分了数据结构与算法的类别,对笔试面试有帮助
  •     计算机面试必备!
  •     很不错的指导书,里面的很多算法仔细理解后很有帮助。
  •     从多个方面详细介绍了面试的考察点,对于求职面试很值得一看。
  •     这本书的关注点很准,它是一本针对面试的指导书,不是一本专业的算法书。里面的题目难度适中,讲解大部分都可以达到生动易懂的程度,是本值得读的书。
  •     前面还行,后面就感觉有点水了。还有感觉作者的代码不够简洁。
  •     终于刷完一本书,质量一般,大部分是拿c++实现的,有些不是最优解或者解体的思路不是最清晰的,欠缺一些新题。但总之还算是个好开始,加油。
  •     第一次评价专业类书籍,满分好评,居家旅行找工作必备良药
  •     【刷吧那就,月底前完结!】刷完,然而没有感觉到惊喜= =不是很全,常见的算法题有,开金典吧~
  •     可以当C++复习,然而我并不报C++有关岗位啊(那还是要看啊摔),决定刷leetcode去,但是这之前的那些面试经验还是蛮有用的
  •     刷了两遍,没什么好说的,感觉很好。 建议结合牛客网上剑指offer专题进行练习
  •     又要找工作了,这本书很好地帮我复习了一篇基础的算法题。
  •     和《统计学习方法》同为ML找工作必备,面试case通俗易懂,代码例题极具代表性,新版还有最后新加的英文版面试题
  •     本月刷完,mark
  •     面试题用C++实现,表示不大看得懂,不过还是可以锻炼自己的思维,读了一部分,实在读不下去,回去复习复习C++再来
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024