《剑指OFFER 名企面试官精讲典型编程题 第2版》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:何海涛著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2017
  • ISBN:9787121310928
  • 页数:334 页
图书介绍:《剑指offer(纪念版):名企面试官精讲典型编程题》剖析了50个典型的程序员面试题,从基础知识、代码质量、解题思路、优化效率和综合能力五个方面系统整理了影响面试的5个要点。全书分为7章,主要包括面试的流程、面试需要的基础知识、高质量的代码、解决面试题的思路、优化时间和空间效率、面试中的各种能力,以及面试案例。

第1章 面试的流程 1

1.1 面试官谈面试 1

1.2 面试的3种形式 2

1.2.1 电话面试 2

1.2.2 共享桌面远程面试 3

1.2.3 现场面试 4

1.3 面试的3个环节 5

1.3.1 行为面试环节 5

1.3.2 技术面试环节 10

1.3.3 应聘者提问环节 17

1.4 本章小结 18

第2章 面试需要的基础知识 21

2.1 面试官谈基础知识 21

2.2 编程语言 22

2.2.1 C++ 23

面试题1:赋值运算符函数 25

2.2.2 C# 28

面试题2:实现Singleton模式 32

2.3 数据结构 37

2.3.1 数组 37

面试题3:数组中重复的数字 39

面试题4:二维数组中的查找 44

2.3.2 字符串 48

面试题5:替换空格 51

2.3.3 链表 56

面试题6:从尾到头打印链表 58

2.3.4 树 60

面试题7:重建二叉树 62

面试题8:二叉树的下一个节点 65

2.3.5 栈和队列 68

面试题9:用两个栈实现队列 68

2.4 算法和数据操作 72

2.4.1 递归和循环 73

面试题10:斐波那契数列 74

2.4.2 查找和排序 79

面试题11:旋转数组的最小数字 82

2.4.3 回溯法 88

面试题12:矩阵中的路径 89

面试题13:机器人的运动范围 92

2.4.4 动态规划与贪婪算法 94

面试题14:剪绳子 96

2.4.5 位运算 99

面试题15:二进制中1的个数 100

2.5 本章小结 104

第3章 高质量的代码 105

3.1 面试官谈代码质量 105

3.2 代码的规范性 106

3.3 代码的完整性 107

面试题16:数值的整数次方 110

面试题17:打印从1到最大的n位数 114

面试题18:删除链表的节点 119

面试题19:正则表达式匹配 124

面试题20:表示数值的字符串 127

面试题21:调整数组顺序使奇数位于偶数前面 129

3.4 代码的鲁棒性 133

面试题22:链表中倒数第k个节点 134

面试题23:链表中环的入口节点 139

面试题24:反转链表 142

面试题25:合并两个排序的链表 145

面试题26:树的子结构 148

3.5 本章小结 152

第4章 解决面试题的思路 155

4.1 面试官谈面试思路 155

4.2 画图让抽象问题形象化 156

面试题27:二叉树的镜像 157

面试题28:对称的二叉树 159

面试题29:顺时针打印矩阵 161

4.3 举例让抽象问题具体化 165

面试题30:包含min函数的栈 165

面试题31:栈的压入、弹出序列 168

面试题32:从上到下打印二叉树 171

面试题33:二叉搜索树的后序遍历序列 179

面试题34:二叉树中和为某一值的路径 182

4.4 分解让复杂问题简单化 186

面试题35:复杂链表的复制 187

面试题36:二叉搜索树与双向链表 191

面试题37:序列化二叉树 194

面试题38:字符串的排列 197

4.5 本章小结 201

第5章 优化时间和空间效率 203

5.1 面试官谈效率 203

5.2 时间效率 204

面试题39:数组中出现次数超过一半的数字 205

面试题40:最小的k个数 209

面试题41:数据流中的中位数 214

面试题42:连续子数组的最大和 218

面试题43:1~n整数中1出现的次数 221

面试题44:数字序列中某一位的数字 225

面试题45:把数组排成最小的数 227

面试题46:把数字翻译成字符串 231

面试题47:礼物的最大价值 233

面试题48:最长不含重复字符的子字符串 236

5.3 时间效率与空间效率的平衡 239

面试题49:丑数 240

面试题50:第一个只出现一次的字符 243

面试题51:数组中的逆序对 249

面试题52:两个链表的第一个公共节点 253

5.4 本章小结 256

第6章 面试中的各项能力 257

6.1 面试官谈能力 257

6.2 沟通能力和学习能力 258

6.3 知识迁移能力 261

面试题53:在排序数组中查找数字 263

面试题54:二叉搜索树的第k大节点 269

面试题55:二叉树的深度 271

面试题56:数组中数字出现的次数 275

面试题57:和为s的数字 280

面试题58:翻转字符串 284

面试题59:队列的最大值 288

6.4 抽象建模能力 294

面试题60:n个骰子的点数 294

面试题61:扑克牌中的顺子 298

面试题62:圆圈中最后剩下的数字 300

面试题63:股票的最大利润 304

6.5 发散思维能力 306

面试题64:求1+2+…+n 307

面试题65:不用加减乘除做加法 310

面试题66:构建乘积数组 312

6.6 本章小结 314

第7章 两个面试案例 317

7.1 案例一:(面试题67)把字符串转换成整数 318

7.2 案例二:(面试题68)树中两个节点的最低公共祖先 326