###一、引言
《剑指offer》可谓是程序猿面试的神书了,在面试中帮了我很多,大部分面试的算法题都会遇到原题或者是类似的题。但是书上的代码都是C版的,我在这里整理了一份Java版的代码供大家学习参考,这些代码我都是在OJ上跑过全AC的,所以正确性你大可放心。
###二、目录
- 赋值运算函数
- 单例设计模式
- 二维数组中查找目标值
- 替换字符串中的空格
- 从尾到头打印链表
- 由前序和中序遍历重建二叉树
- 用两个栈实现队列
- 求旋转数组的最小数字
- 斐波那契数列的第n项(青蛙跳台阶)
- 二进制中1的个数
- 数值的整数次方
- 打印1到最大的n位数
- O(1)时间删除链表节点
- 使数组中的奇数位于偶数前面
- 找链表中倒数第K个节点
- 输出反转后的链表
- 合并两个有序链表
- 判断二叉树A中是否包含子树B
- 二叉树的镜像
- 顺时针打印矩阵
- 包含min函数的栈
- 判断一个栈是否是另一个栈的弹出序列
- 层序遍历二叉树
- 后序遍历二叉搜索树
- 二叉树中和为某值的路径
- 复杂链表的复制
- 二叉搜索树转换为双向链表
- 打印字符串中所有字符的排列
- 数组中出现次数超过一半的数字
- 找出最小的K个数
- 连续子数组的最大和
- 从1到整数n中1出现的次数
- 把数组中的数排成一个最小的数
- 求第N个丑数
- 第一个出现一次的字符
- 数组中逆序对的个数
- 两个链表的第一个公共节点
- 数字在排序数组中出现的次数
- 二叉树的深度
- 数组中只出现一次的两个数,而其他数都出现两次。
- 和为s的连续整数序列
- 翻转字符串
- n个骰子的点数及出现的概率44. 扑克牌的顺子
- 圆圈中最后剩下的数
- 1+2+3+…+n的和
- 不用加减乘除做加法
- 不能被继承的类
- 字符串转换为整数
- 树中两个节点的最低公共祖先
- 找出重复的数
- 构建乘积数组
- 正则表达式匹配
- 表示数值的字符串
- 字符流中第一个不重复的字符
- 链表中环的入口节点
- 删除链表中重复的节点
- 二叉树的下一个节点
- 对称的二叉树
- 按之字形顺序打印二叉树
- 把二叉树打印成多行
- 序列化二叉树
- 二叉搜索树的第K个节点
- 数据流中的中位数
- 滑动窗口的最大值
- 矩阵中的路径
- 机器人的运动范围
###三、代码实现