更新时间:2018-12-27 14:16:35
封面
版权信息
前言
推荐序二
推荐序一
第1章 面试的流程
1.1 面试官谈面试
1.2 面试的三种形式
1.2.1 电话面试
1.2.2 共享桌面远程面试
1.2.3 现场面试
1.3 面试的三个环节
1.3.1 行为面试环节
1.3.2 技术面试环节
1.3.3 应聘者提问环节
1.4 本章小结
第2章 面试需要的基础知识
2.1 面试官谈基础知识
2.2 编程语言
2.2.1 C++
面试题1:赋值运算符函数
2.2.2 C#
面试题2:实现Singleton模式
2.3 数据结构
2.3.1 数组
面试题3:二维数组中的查找
2.3.2 字符串
面试题4:替换空格
2.3.3 链表
面试题5:从尾到头打印链表
2.3.4 树
面试题6:重建二叉树
2.3.5 栈和队列
面试题7:用两个栈实现队列
2.4 算法和数据操作
2.4.1 查找和排序
面试题8:旋转数组的最小数字
2.4.2 递归和循环
面试题9:斐波那契数列
2.4.3 位运算
面试题10:二进制中1的个数
2.5 本章小结
第3章 高质量的代码
3.1 面试官谈代码质量
3.2 代码的规范性
3.3 代码的完整性
面试题11:数值的整数次方
面试题12:打印1到最大的n位数
面试题13:在O(1)时间删除链表结点
面试题14:调整数组顺序使奇数位于偶数前面
3.4 代码的鲁棒性
面试题15:链表中倒数第k个结点
面试题16:反转链表
面试题17:合并两个排序的链表
面试题18:树的子结构
3.5本章小结
第4章 解决面试题的思路
4.1 面试官谈面试思路
4.2 画图让抽象问题形象化
面试题19:二叉树的镜像
面试题20:顺时针打印矩阵
4.3举例让抽象问题具体化
面试题21:包含min函数的栈
面试题22:栈的压入、弹出序列
面试题23:从上往下打印二叉树
面试题24:二叉搜索树的后序遍历序列
4.4 分解让复杂问题简单化
面试题26:复杂链表的复制
面试题27:二叉搜索树与双向链表
面试题28:字符串的排列
4.5 本章小结
第5章 优化时间和空间效率
5.1 面试官谈效率
5.2 时间效率
面试题29:数组中出现次数超过一半的数字
面试题30:最小的k个数
面试题31:连续子数组的最大和
面试题32:从1到n整数中1出现的次数
面试题33:把数组排成最小的数
5.3 时间效率与空间效率的平衡
面试题34:丑数
面试题35:第一个只出现一次的字符
面试题36:数组中的逆序对
面试题37:两个链表的第一个公共结点
5.4 本章小结
第6章 面试中的各项能力
6.1 面试官谈能力
6.2 沟通能力和学习能力
6.3 知识迁移能力
面试题38:数字在排序数组中出现的次数
面试题39:二叉树的深度
面试题41:和为s的两个数字VS和为s的连续正数序列
面试题42:翻转单词顺序 VS左旋转字符串
6.4 抽象建模能力
面试题43:n个骰子的点数
面试题45:圆圈中最后剩下的数字
6.5 发散思维能力
面试题46:求1+2+…+n
面试题47:不用加减乘除做加法
面试题48:不能被继承的类