03 |
数组中重复的数字 |
【LeetCode-剑指Offer】03. 数组中重复的数字 |
数组、哈希表 |
|
|
04 |
二维数组中的查找 |
【LeetCode】240. 搜索二维矩阵 II(同剑指 Offer 04) |
数组、双指针 |
|
|
05 |
替换空格 |
【LeetCode-剑指Offer】05. 替换空格 |
|
|
|
06 |
从尾到头打印链表 |
【LeetCode-剑指Offer】06. 从尾到头打印链表 |
链表 |
|
|
07 |
重建二叉树 |
【LeetCode】105. 根据一棵树的前序遍历与中序遍历构造二叉树。(同剑指 Offer 07) |
树、递归 |
|
|
09 |
用两个栈实现队列 |
【LeetCode-剑指Offer】09. 用两个栈实现队列 |
栈、设计 |
|
|
10- I |
斐波那契数列 |
【LeetCode】10- I. 斐波那契数列 |
递归 |
|
|
10- II |
青蛙跳台阶问题 |
【LeetCode】70. 爬楼梯(同 剑指 Offer 10- II) |
递归 |
|
|
11 |
旋转数组的最小数字 |
【LeetCode】154. 寻找旋转排序数组中的最小值 II(同 剑指 Offer 11) |
二分查找 |
|
|
12 |
矩阵中的路径 |
【LeetCode】79. 单词搜索(同剑指 Offer 12) |
DFS |
|
|
13 |
机器人的运动范围 |
【LeetCode-剑指Offer】13. 机器人的运动范围 |
|
|
|
14- I |
剪绳子 |
【LeetCode】343. 整数拆分(同剑指 Offer 14- I && 剑指 Offer 14- II ) |
数学、动态规划 |
|
|
14- II |
剪绳子 II |
【LeetCode】343. 整数拆分(同剑指 Offer 14- I && 剑指 Offer 14- II ) |
数学、动态规划 |
|
|
15 |
二进制中1的个数 |
【LeetCode】191. 位1的个数(同 剑指 Offer 15) |
位运算 |
|
|
16 |
数值的整数次方 |
【LeetCode】50. Pow(x, n)(同:剑指 Offer 16) |
递归 |
|
|
17 |
打印从1到最大的n位数 |
【LeetCode-剑指Offer】剑指 Offer 17. 打印从1到最大的n位数 |
数学 |
|
|
18 |
删除链表的节点 |
【LeetCode-剑指Offer】18. 删除链表的节点 |
链表 |
|
|
19 |
正则表达式匹配 |
【LeetCode】10. 正则表达式匹配(同剑指Offer19) |
动态规划、字符串、回溯算法 |
|
|
20 |
表示数值的字符串 |
【LeetCode-剑指Offer】20. 表示数值的字符串 |
数学 |
|
|
21 |
调整数组顺序使奇数位于偶数前面 |
【LeetCode-剑指Offer】21. 调整数组顺序使奇数位于偶数前面 |
|
|
|
22 |
链表中倒数第k个节点 |
【LeetCode-剑指Offer】22. 链表中倒数第k个节点 |
链表、双指针 |
|
|
24 |
反转链表 |
【LeetCode】206.反转一个单链表。(同 剑指 Offer 24) |
链表 |
|
|
25 |
合并两个排序的链表 |
【LeetCode】21. 合并两个有序链表(同 剑指 Offer 25) |
分治算法、链表 |
|
|
26 |
树的子结构 |
【LeetCode-剑指Offer】26. 树的子结构 |
树 |
|
|
27 |
二叉树的镜像 |
【LeetCode】226. 翻转二叉树(同 剑指 Offer 27) |
树 |
|
|
28 |
对称的二叉树 |
【LeetCode】101. 对称二叉树(同 剑指 Offer 28) |
树、DFS、BFS |
|
|
29 |
顺时针打印矩阵 |
【LeetCode】54. 螺旋矩阵(同 剑指 Offer 29) |
数组 |
|
|
30 |
包含min函数的栈 |
【LeetCode】155. 最小栈(同 剑指 Offer 30) |
栈、设计 |
|
|
31 |
栈的压入、弹出序列 |
【LeetCode】946. 验证栈序列(同剑指 Offer 31) |
栈 |
|
|
32 - I |
从上到下打印二叉树 |
【LeetCode-剑指Offer】剑指 Offer 32 - I. 从上到下打印二叉树 |
树、BFS |
|
|
32 - II |
从上到下打印二叉树 II |
【LeetCode】102. 二叉树的层序遍历(同 剑指 Offer 32-II) |
树、BFS |
|
|
32 - III |
从上到下打印二叉树 III |
【LeetCode-剑指Offer】32 - III. 从上到下打印二叉树 III |
树、BFS |
|
|
33 |
二叉搜索树的后序遍历序列 |
【LeetCode-剑指Offer】33. 二叉搜索树的后序遍历序列 |
|
|
|
34 |
二叉树中和为某一值的路径 |
【LeetCode】113. 路径总和 II(同剑指 Offer 34) |
树、DFS |
|
|
35 |
复杂链表的复制 |
【LeetCode】138. 复制带随机指针的链表(同 剑指 Offer 35) |
链表、哈希表 |
|
|
36 |
二叉搜索树与双向链表 |
【LeetCode】426. 将二叉搜索树转化为排序的双向链表(剑指 Offer 36) |
分治算法 |
|
|
37 |
序列化二叉树 |
【LeetCode】297. 二叉树的序列化与反序列化(同剑指Offer37) |
树、设计 |
|
|
38 |
字符串的排列 |
【LeetCode-剑指Offer】38. 字符串的排列 |
回溯算法 |
|
|
39 |
数组中出现次数超过一半的数字 |
【LeetCode】169. 多数元素(同 剑指 Offer 39) |
位运算、分治算法、数组 |
|
|
40 |
最小的k个数 |
【LeetCode-剑指Offer】40. 最小的k个数 |
堆、分治算法 |
|
|
41 |
数据流中的中位数 |
【LeetCode】295. 数据流的中位数(同剑指Offer41) |
堆、设计 |
|
|
42 |
连续子数组的最大和 |
【LeetCode】53. 最大子序和(同剑指 Offer 42) |
数组、分治算法、动态规划 |
|
|
43 |
1~n 整数中 1 出现的次数 |
【LeetCode】233. 数字 1 的个数(同剑指Offer43) |
数学 |
|
|
44 |
数字序列中某一位的数字 |
【LeetCode】400. 第N个数字(同剑指 Offer 44) |
数学 |
|
|
45 |
把数组排成最小的数 |
【LeetCode-剑指Offer】45. 把数组排成最小的数 |
排序 |
|
|
46 |
把数字翻译成字符串 |
【LeetCod-剑指Offer】46. 把数字翻译成字符串 |
|
|
|
47 |
礼物的最大价值 |
【LeetCode-剑指Offer】47. 礼物的最大价值 |
动态规划 |
|
|
48 |
最长不含重复字符的子字符串 |
【LeetCode】3. 无重复字符的最长子串(同剑指 Offer 48) |
哈希表、双指针、Sliding Window、字符串 |
|
|
49 |
丑数 |
【LeetCode】264. 丑数 II(同剑指 Offer 49) |
数学、堆、动态规划 |
|
|
50 |
第一个只出现一次的字符 |
【LeetCode-剑指Offer】50. 第一个只出现一次的字符 |
哈希表 |
|
|
51 |
数组中的逆序对 |
【LeetCode-剑指Offer】51. 数组中的逆序对 |
归并 |
|
|
52 |
两个链表的第一个公共节点 |
【LeetCode】160. 相交链表(同剑指 Offer 52) |
链表 |
|
|
53 - I |
在排序数组中查找数字 I |
【LeetCode】34. 在排序数组中查找元素的第一个和最后一个位置(同剑指 Offer 53 - I) |
数组、二分查找 |
|
|
53 - II |
0~n-1中缺失的数字 |
【LeetCode-剑指Offer】53 - II. 0~n-1中缺失的数字 |
数组、二分查找 |
|
|
54 |
二叉搜索树的第k大节点 |
【LeetCode-剑指Offer】54. 二叉搜索树的第k大节点 |
树 |
|
|
55 - I |
二叉树的深度 |
【LeetCode】104. 二叉树的最大深度(同剑指 Offer 55 - I) |
树、DFS、递归 |
|
|
55 - II |
平衡二叉树 |
【LeetCode】110. 平衡二叉树(同剑指 Offer 55 - II) |
树、DFS |
|
|
56 - I |
数组中数字出现的次数 |
【LeetCode-剑指Offer】56 - I. 数组中数字出现的次数 |
|
|
|
56 - II |
数组中数字出现的次数 II |
【LeetCode-剑指Offer】剑指 Offer 56 - II. 数组中数字出现的次数 II |
|
|
|
57 |
和为s的两个数字 |
【LeetCode】1. 两数之和(基本同剑指 Offer 57) |
数组、哈希表 |
|
|
57 - II |
和为s的连续正数序列 |
【LeetCode-剑指Offer】57 - II. 和为s的连续正数序列 |
|
|
|
58 - I |
翻转单词顺序 |
【LeetCode】151. 翻转字符串里的单词(同剑指 Offer 58 - I) |
字符串 |
|
|
58 - II |
左旋转字符串 |
【LeetCode-剑指Offer】58 - II. 左旋转字符串 |
字符串 |
|
|
59 - I |
滑动窗口的最大值 |
【LeetCode】239、滑动窗口最大值(同剑指 Offer 59 - I) |
队列、Sliding Window |
|
|
59 - II |
队列的最大值 |
【LeetCode-剑指Offer】59 - II. 队列的最大值 |
队列、Sliding Window |
|
|
60 |
n个骰子的点数 |
【LeetCode-剑指Offer】60. n个骰子的点数 |
|
|
|
61 |
扑克牌中的顺子 |
【LeetCode-剑指Offer】61. 扑克牌中的顺子 |
|
|
|
62 |
圆圈中最后剩下的数字 |
【LeetCode-剑指Offer】62. 圆圈中最后剩下的数字 |
|
|
|
63 |
股票的最大利润 |
【LeetCode】121. 买卖股票的最佳时机(剑指 Offer 63) |
动态规划 |
|
|
64 |
求1+2+…+n |
【LeetCode-剑指Offer】64. 求1+2+…+n |
|
|
|
65 |
不用加减乘除做加法 |
【LeetCode-剑指Offer】65. 不用加减乘除做加法 |
|
|
|
66 |
构建乘积数组 |
【LeetCode-剑指Offer】66. 构建乘积数组 |
|
|
|
67 |
把字符串转换成整数 |
【LeetCode】8. 字符串转换整数 (atoi)(同剑指 Offer 67) |
数学、字符串 |
|
|
68 - I |
二叉搜索树的最近公共祖先 |
【LeetCode】235. 二叉搜索树的最近公共祖先(同剑指 Offer 68 - I) |
树 |
|
|
68 - II |
二叉树的最近公共祖先 |
【LeetCode】236. 二叉树的最近公共祖先(同剑指 Offer 68 - II) |
树 |
|
|
|
|
|
|
|
|