牛客网剑指 Offer 刷题题解

tooffer

# Title Solution type
1 二维数组中的查找 Java 数组
2 替换空格 Java 字符串
3 从尾到头打印链表 Java 链表
4 重建二叉树 Java
5 用两个栈实现队列 Java 队列和栈
6 旋转数组的最小数字 Java 查找和排序
7 斐波拉契数列 Java 递归和循环
8 跳台阶 Java 递归和循环
9 变态跳台阶 Java 递归和循环
10 矩形覆盖 Java 递归和循环
11 二进制中1的个数 Java 位运算
12 数值的整数次方 Java 代码的完整性
13 调整数组顺序使奇数为于偶数前面 Java 代码的完整性
14 链表中倒数第k个结点 Java 代码的鲁棒性
15 反转链表 Java 代码的鲁棒性
16 合并两个排序的链表 Java 代码的鲁棒性
17 树的子结构 Java 代码的鲁棒性
18 二叉树的镜像 Java 面试思路
19 顺时针打印矩阵 Java 画图让抽象形象化
20 包含min函数的栈 Java 举例让抽象具体化
21 栈的压入、弹出序列 Java 举例让抽象具体化
22 从上往下打印二叉树 Java 举例让抽象具体化
23 二叉搜索树的后序遍历序列 Java 举例让抽象具体化
24 二叉树中和为某一值的路径 Java 举例让抽象具体化
25 复杂链表的复制 Java 分解让复杂问题简单
26 二叉搜索树与双向链表 Java 分解让复杂问题简单
27 字符串的排列 Java 分解让复杂问题简单
28 数组中出现次数超过一半的数字 Java 时间效率
29 最小的K个数 Java 时间效率
30 连续子序列的最大和 Java 时间效率
31 整数中1出现的次数(从1到n整数中1出现的次数) Java 时间效率
32 把数组排成最小的数 Java 时间效率
33 丑数 Java 时间空间效率的平衡
34 第一次只出现一次的字符位置 Java 时间空间效率的平衡
35 数组中的逆序对 Java 时间空间效率的平衡
36 两个链表的第一个公共结点 Java 时间空间效率的平衡
37 数字在排序数组中出现的次数 Java 知识迁移能力
38 二叉树的深度 Java 知识迁移能力
39 平衡二叉树 Java 知识迁移能力
40 数组中只出现一次的数字 Java 知识迁移能力
41 和为S的连续整数序列 Java 知识迁移能力
42 和为S的两个数字 Java 知识迁移能力
43 左旋转字符串 Java 知识迁移能力
44 翻转单词顺序列 Java 知识迁移能力
45 扑克牌顺子 Java 抽象建模能力
46 孩子们的游戏(圆圈中最后剩下的数) Java 抽象建模能力
47 求1+2+3+…+n Java 发散思维能力
48 不用加减乘除做加法 Java 发散思维能力
49 将字符串转化为整数 Java 综合
50 数组中重复的数字 Java 数组
51 构建乘积数组 Java 数组
52 正则表达式匹配 Java 字符串
53 表示数值的字符串 Java 字符串
54 字符流中第一个不重复的字符 Java 字符串
55 链表中环的入口结点 Java 链表
56 删除链表中重复的结点 Java 链表
57 二叉树的下一个结点 Java
58 对称的二叉树 Java
59 按之字形打印顺序打印二叉树 Java
60 把二叉树打印成多行 Java
61 序列化二叉树 Java
62 二叉搜索树的第k个结点 Java
63 数据流中的中位数 Java
64 滑动窗口的最大值 Java 栈和队列
65 矩阵中的路径 Java 回溯法
66 机器人的运动范围 Java 回溯法

参考牛客网讨论区以及GoOffer的漂亮排版

如有歧义和Bug,提交PR即可