题名 | 知识点 | 相似题号 | 第一遍 | 第二遍 | 第三遍 | 第四遍 | 第五遍 |
---|---|---|---|---|---|---|---|
11:盛水最多的容器 | 前后双指针 | 4.10 | 4.22 | ||||
70:爬楼梯 | 动态规划 | 4.10 | 4.22 | 5.4 | 5.16 | 6.4 | |
283:移动零 | 前后双指针 | 4.10 | 4.22 | ||||
15:3Sum | 前后双指针 | 4.11 | 4.13 | 4.22 | |||
141:环形链表 | 快慢双指针 | 4.11 | |||||
16:最接近的 3Sum | 前后双指针 | 4.12 | 4.22 | ||||
18:4Sum | 前后双指针 | 4.12 | 5.23 | ||||
26:删除排序数组重复项 | 前后双指针 | 4.13 | 4.22 | 5.6 | |||
189:旋转数组 | 数学推理 | 4.13 | 4.22 | ||||
66:加一 | 数学 | 4.14 | |||||
88:合并两个有序数组 | 双指针 | 4.15 | 4.22 | 5.6 | |||
1281:整数积和之差 | 4.16 | ||||||
24:两两交换链表节点 | 4.16 | 4.22 | 5.6 | ||||
142:环形链表II | 快慢双指针、数学 | 4.16 | 5.17 | ||||
977:有序数组的平方 | 双指针 | 4.17 | |||||
21:合并两个有序链表 | 链表指针 | 4.17 | |||||
25:k个一组翻转链表 | 三指针、数学 | 4.17 | 5.6 | ||||
面试题50:第一个只出现一次的字符 | HashMap | 4.19 | |||||
2:2Sum | HashMap | 4.19 | 4.25 | 4.27 | |||
3:无重复字符最小子串 | HashMap、双指针 | 4.19 | |||||
92:反转链表II | 链表 | 4.20 | 5.7 | ||||
面试题24/206:反转链表 | 链表 | 4.20 | |||||
19:删除倒数第n个节点 | 快慢指针、链表 | 4.20 | 5.7 | ||||
82:删除排序链表中重复元素 | 链表 | 4.20 | 5.7 | ||||
86:分隔链表 | 双指针 | 4.20 | 5.7 | ||||
290:单词规律 | HashMap | 4.20 | |||||
299:猜数字 | HashMap | 4.20 | |||||
350:数组交集II | HashMap | 4.21 | 6.6 | ||||
392:判断子序列 | 双指针 | 4.22 | |||||
242:有效字母异位词 | HashMap | 4.23 | 5.3 | ||||
258:各位相加 | 数学 | 4.23 | |||||
412:FizzBuzz | 条件分类 | 4.23 | |||||
49:字母异位词分组 | HashMap | 4.24 | |||||
104:二叉树的最大深度 | 二叉树、递归 | 4.24 | 4.30 | ||||
111:二叉树的最小深度 | 二叉树、递归 | 104 | 4.24 | 4.30 | |||
110:平衡二叉树 | 二叉树、递归 | 4.24 | 5.3 | ||||
559:N叉树的最大深度 | 二叉树、递归 | 4.24 | 5.3 | ||||
144:二叉树的前序遍历 | 二叉树、DFS | 4.24 | 5.4 | 6.1 | |||
94:二叉树的中序遍历 | 二叉树、DFS | 4.24 | 5.4 | 6.1 | |||
589:N叉树的前序遍历 | 树、DFS | 4.24 | |||||
590:N叉树的后序遍历 | 树、DFS | 4.24 | |||||
263:丑数 | 4.25 | ||||||
264:丑数II | 三指针、数学 | 4.25 | 4.27 | 5.4 | 5.8 | ||
543:二叉树的直径 | 二叉树、DFS | 4.25 | 5.4 | 5.20 | |||
面试题01.08:零矩阵 | 矩阵 | 4.25 | |||||
1200:最小绝对差 | 数学 | 4.25 | |||||
75:颜色分类 | 双指针 | 4.26 | 5.4 | ||||
98:验证二叉搜索树 | 二叉树、DFS、递归 | 4.27 | 5.4 | ||||
99:恢复二叉搜索树 | 二叉树、逆序DFS | 4.27 | 5.4 | ||||
100:相同的树 | 二叉树、递归 | 4.27 | 5.4 | ||||
101:对称二叉树 | 二叉树、递归 | 100 | 4.27 | ||||
226:翻转二叉树 | 二叉树、递归 | 101 | 4.27 | 5.15 | |||
102:二叉树的层序遍历 | 二叉树、BFS | 4.28 | 4.29 | 5.4 | 5.11 | 6.2 | |
103:二叉树的锯齿状层序遍历 | 二叉树、BFS | 102 | 4.28 | 4.29 | 5.4 | ||
105:从前、中序遍历构造二叉树 | 二叉树、逆DFS | 4.29 | 5.5 | 5.22 | |||
106:从中、后序遍历构造二叉树 | 二叉树、逆DFS | 105 | 4.29 | 5.5 | |||
107:二叉树的层序遍历II | 二叉树、BFS | 102 | 4.29 | ||||
面试题05:替换空格 | 字符串 | 4.29 | |||||
面试题06:从头到尾打印链表 | 链表、递归 | 4.29 | |||||
22:括号生成 | 递归 | 4.30 | 5.12 | 6.4 | |||
297:二叉树的序列化与反序列化 | 二叉树、递归、BFS | 94/105/102 | 4.30 | ||||
108:将有序数组转化为BST | BST、逆DFS | 98/99/105/106 | 4.30 | 5.5 | |||
109:将有序链表转换为BST | BST、逆DFS、快慢指针 | 108 | 4.30 | 5.5 | |||
112:路径之和 | 二叉树、递归 | 111 | 4.30 | ||||
145:二叉树的后序遍历 | 二叉树、DFS | 4.30 | |||||
113:路径之和II | 二叉树、递归 | 112 | 5.1 | ||||
114:二叉树展开为链表 | 二叉树、仿后序遍历 | 5.1 | |||||
69:多数元素 | HashMap,投票法 | 5.7 | 5.23 | ||||
116:填充每一个节点的下一个右侧节点指针 | 二叉树、递归、迭代 | 5.8 | 5.11 | ||||
117:填充每个节点的下一个右侧节点指针II | 二叉树、递归 | 5.8 | 5.11 | ||||
46:全排列 | 回溯 | 5.8 | 5.22 | ||||
47:全排列II | 回溯、剪枝 | 5.9 | 5.22 | 5.24 | |||
77:组合 | 回溯 | 5.9 | 5.22 | 5.28 | |||
78:子集 | 回溯 | 5.9 | 5.22 | ||||
17:电话号码的字母组合 | 回溯 | 5.9 | |||||
51:N皇后 | 回溯、剪枝 | 5.9 | 6.3 | ||||
50:Pow(x,n) | 递归、快速幂 | 5.10 | |||||
236:二叉树的最近公共祖先 | 二叉树、递归 | 5.10 | 5.11 | 5.15 | |||
198:打家劫舍 | 动态规划 | 5.11 | 5.25 | 5.27 | |||
69:x的平方根 | 二分查找 | 5.12 | 5.16 | ||||
124:二叉树的最大路径和 | 递归 | 5.12 | |||||
127:单词接龙 | BFS | 5.13 | 5.14 | 5.20 | 5.21 | 6.4/5/7 | |
433:最小基因变化 | BFS | 5.13 | 5.21 | 6.4 | |||
455:分发饼干 | BFS | 5.13 | 5.15 | ||||
515:在每个数行中找最大值 | BFS | 5.13 | 5.22 | ||||
200:岛屿数量 | BFS | 5.14 | 5.22 | 6.3 | |||
33:搜索旋转排序数组 | 二分查找 | 5.14 | |||||
129:求根到叶子节点数字之和 | DFS | 5.14 | |||||
156:上下翻转二叉树 | 递归 | 5.14 | |||||
199:二叉树的右视图 | BFS | 5.14 | |||||
122:买卖股票的最佳时机II | 贪心算法 | 5.15 | |||||
55:跳跃游戏 | 贪心算法 | 5.15 | |||||
45:跳跃游戏II | 贪心算法 | 5.15 | 5.23 | ||||
860:柠檬水找零 | 贪心算法 | 5.15 | |||||
222:完全二叉树的节点个数 | 递归 | 5.15 | |||||
235: 二叉搜索树的最近公共祖先 | 递归 | 5.15 | |||||
230:二叉搜索树中第k小的元素 | 中序遍历DFS | 5.16 | |||||
74:搜索二维矩阵 | 二分查找 | 5.16 | 5.19 | ||||
367:有效的完全平方数 | 二分查找 | 5.16 | |||||
153:寻找旋转排序数组中的最小值 | 二分查找 | 5.16 | |||||
270:最接近的二叉搜索树值 | DFS | 5.17 | |||||
272:最接近的二叉搜索树值II | DFS | 5.17 | |||||
285:二叉搜索树中的顺序后继 | DFS | 5.17 | |||||
429:N 叉树的层序遍历 | BFS | 5.22 | |||||
35:搜索插入位置 | 二分查找 | 5.23 | |||||
62:不同路径 | 动态规划 | 5.24 | 5.25 | ||||
63:不同路径II | 动态规划 | 5.24 | 5.25 | ||||
53:最大子序和 | 动态规划 | 5.25 | 5.27 | ||||
152:乘积最大的子数组 | 动态规划 | 5.25 | 5.27 | ||||
120:三角形最小路径和 | 动态规划 | 5.25 | 5.27 | ||||
1143:最长公共子序列 | 动态规划 | 5.25 | 5.27 | ||||
322:零钱兑换 | 动态规划 | 5.26 | 5.27 | ||||
213:打家劫舍II | 动态规划 | 5.27 | |||||
337:打家劫舍III | 动态规划 | 5.27 | |||||
121:买卖股票的最佳时期 | 动态规划 | 5.29 | |||||
122:买卖股票的最佳时期II | 动态规划 | 5.29 | |||||
123:买卖股票的最佳时期III | 动态规划 | 5.29 | |||||
186:买卖股票的最佳时期IV | 动态规划 | 5.29 | |||||
309:买卖股票的最佳时期含冷冻期 | 动态规划 | 5.29 | |||||
714:买卖股票的最佳时期含手续费 | 动态规划 | 5.29 | |||||
434:字符串中的单词数 | 循环 | 5.30 | |||||
64:最小路径和 | 动态规划 | 5.30 | |||||
221:最大正方形 | 动态规划 | 5.30 | |||||
621:任务调度器 | 数学推导 | 5.31 | |||||
547:朋友圈 | dfs、并查集 | 6.2 | 6.4 | ||||
36:有效的数独 | 数学 | 6.4 | 6.5 | ||||
37:解数独 | 数学 | 6.4 | |||||
130:被围绕的区域 | DFS | 6.4 | |||||
208:实现Trie | 字典树 | 6.4 | |||||
1091:二级制矩阵中的最短路径 | BFS | 6.5 | |||||
217:存在重复元素 | Set | 6.6 | |||||
79:单词搜索 | DFS+回溯 | 6.7 | |||||
212:单词搜索II | DFS+字典树 | 6.7 | |||||