《剑指Offer》面试题: Python实现
面试基础知识
第2章编程语言
2.2使用Python实现单例模式
面试题2
数据结构
2.3二维数组中的查找
面试题3替换空格
面试题4从尾到头打印单链表
面试题5重建二叉树
面试题6用两个栈实现队列
面试题7
算法和数据操作
2.4旋转数组的最小数字
面试题8斐波那契数列
面试题9二进制中1的个数
面试题10
高质量代码
第3章代码的完整性
3.3数值的整数次方
面试题11打印1到最大的n位数
面试题12O(1)时间删除链表结点
面试题13调整数组顺序使寄数位于偶数前面
面试题14
代码的鲁棒性
3.4链表中倒数第k个结点
面试题15反转链表
面试题16合并两个排序的链表
面试题17树的子结构
面试题18
解决面试题思路
第4章画图让抽象问题形象化
4.2二叉树的镜像
面试题19顺时针打印矩阵
面试题20
举例让抽象问题具体化
4.3包含min函数的栈
面试题21栈的压入弹出序列
面试题22从上往下打印二叉树
面试题23二叉树的后序遍历序列
面试题24二叉树中和为某一值的路径
面试题25
分解让复杂问题简单化
4.4复杂链表的复制
面试题26二叉搜索树与双向链表
面试题27字符串的排列
面试题28
优化时间和空间效率
第5章时间效率
5.2数组中出现次数超过一半的数字
面试题29最小的k个数
面试题30连续子数组的最大和
面试题31从1到n整数中1出现的次数
面试题32把数组排成最小的数
面试题33
时间效率与空间效率的平衡
5.3丑数
面试题34第一个只出现一次的字符
面试题35数组中的逆序对
面试题36两个链表的第一个公共结点
面试题37
面试能力
第6章知识迁移能力
6.3数字在排序数组中出现的次数
面试题38二叉树的深度
面试题39数组中只出现一次的数字
面试题40和为s的两个数字VS和为s的连续正数序列
面试题41翻转单词顺序与左旋转字符串
面试题42
抽象建模能力
6.4n个骰子的点数
面试题43扑克牌的顺子
面试题44圆圈中最后剩下的数字
面试题45
发散思维能力
6.5求1+2...+n
面试题46不用加减乘除做加法
面试题47不能被继承的类
面试题48
面试案例
第7章案例一
7.1把字符串转化成整数
面试题49
案例二
7.2树中两个结点的最低公共祖先
面试题50