No | Problem & Solution |
---|---|
2 | 实现单例模式 |
3 | 二维数组中的查找 |
4 | 替换空格 |
5 | 从尾到头打印链表 |
6 | 重建二叉树2 |
7 | 用两个栈实现队列 |
8 | 旋转数组的最小数字 |
9 | 斐波那契数列/青蛙跳台阶/矩形覆盖/变态跳台阶 |
10 | 二进制中 1 的个数 |
11 | 数值的整数次方 |
12 | 打印 1 到最大的 n 位整数 |
13 | 在 o(1) 时间删除链表结点 |
14 | 调整数组顺序使奇数位于偶数前面 |
15 | 链表中倒数第 k 个节点 |
16 | 反转链表 |
17 | 合并两个排序的链表 |
18 | 树的子结构 |
19 | 二叉树的镜像 |
20 | 顺时针打印矩阵 |
21 | 包含 min 函数的栈 |
22 | 栈的压入、弹出序列 |
23 | 从上到下打印二叉树 |
24 | 二叉搜索树的后序遍历序列 |
25 | 二叉树中和为某一值的路径 |
26 | 复杂链表的复制 |
27 | 二叉搜索树与双向链表 |
28 | 字符串的排列 |
29 | 数组中出现次数超过一半的数字 |
30 | 最小的 k 个数 |
31 | 连续子数组的最大和 |
32 | 从 1 到 n 整数中 1 出现的次数 |
33 | 把数组排成最小的数 |
34 | 丑数 |
35 | 第一个只出现一次的字符 |
36 | 数组中的逆数对 |
37 | 两个链表的第一个公共结点 |
38 | 数字在排序数组中出现的次数 |
39 | 二叉树的深度 |
40 | 数组中只出现一次的数字 |
41 | 和为 s 的两个数字 VS 和为 s 的连续正数序列 |
42 | 翻转单词顺序 VS 左旋转字符串 |
43 | n 个骰子的点数 |
44 | 扑克牌的顺子 |
45 | 圆圈中最后剩下的数字 |
46 | 求前 n 项正整数的和(不能使用乘除法以及for、while、if 等关键字) |
47 | 不用加减乘除做加法 |
48 | 不能被继承的类 |
49 | 把字符串转换成整数 |
50 | 树中两个结点的最低公共祖先结点 |
51 | 数组中重复的数字 |
52 | 构建乘积数组 |
53 | 正则表达式匹配 |
54 | 表示数值的字符串 |
55 | 字符流中第一个不重复的字符 |
56 | 链表中环的入口结点 |
57 | 删除链表中重复的结点 |
58 | 二叉树的下一个结点 |
59 | 对称的二叉树 |
60 | 把二叉树打印成多行 |
61 | 按之字形顺序打印二叉树 |
62 | 序列化二叉树 |
63 | 二叉搜索树的第k个结点 |
64 | 数据流中的中位数 |
65 | 滑动窗口的最大值 |
66 | 矩阵中的路径 |
67 | 机器人的运动范围 |
- [1] 《剑指offer 第2版》