CodingInterview
此项目建议搭配Code tree for GitHub效果更佳。
环境说明: Java8
LeetCode
1.按题目顺序
题号 |
相关话题 |
题目 |
难度 |
001 |
数组、哈希表 |
两数之和 |
简单 |
002 |
链表、数学 |
两数相加 |
中等 |
003 |
字符串、哈希表、双指针 |
无重复字符的最长子串 |
中等 |
005 |
字符串、动态规划 |
最长回文子串 |
中等 |
011 |
数组、双指针 |
盛最多水的容器 |
中等 |
015 |
数组、双指针 |
三数之和 |
中等 |
016 |
数组、双指针 |
最接近的三数之和 |
中等 |
017 |
字符串、回溯算法 |
电话号码的字母组合 |
中等 |
018 |
数组、哈希表、双指针 |
四数之和 |
中等 |
019 |
链表、双指针 |
删除链表的倒数第N个节点 |
中等 |
022 |
字符串、回溯算法 |
括号生成 |
中等 |
026 |
数组、双指针 |
删除排序数组中的重复项 |
简单 |
027 |
数组、双指针 |
移除元素 |
简单 |
028 |
字符串、双指针 |
实现strStr() |
简单 |
039 |
数组、回溯算法 |
组合总和 |
中等 |
040 |
数组、回溯算法 |
组合总和 II |
中等 |
046 |
回溯算法 |
全排列 |
中等 |
047 |
回溯算法 |
全排列II |
中等 |
051 |
回溯算法 |
N皇后 |
困难 |
052 |
回溯算法 |
N皇后 II |
困难 |
053 |
数组、分治算法、动态规划 |
最大子序和 |
中等 |
055 |
贪心算法、数组 |
跳跃游戏 |
中等 |
056 |
排序、数组 |
合并区间 |
中等 |
057 |
排序、数组 |
插入区间 |
困难 |
060 |
数学、回溯算法 |
第k个排列 |
中等 |
061 |
链表、双指针 |
旋转链表 |
中等 |
062 |
数组、动态规划 |
不同路径 |
中等 |
063 |
数组、动态规划 |
不同路径 II |
中等 |
064 |
数组、动态规划 |
最小路径和 |
中等 |
070 |
动态规划 |
爬楼梯 |
简单 |
072 |
字符串、动态规划 |
编辑距离 |
困难 |
075 |
排序、数组、双指针 |
颜色分类 |
中等 |
077 |
回溯算法 |
组合 |
中等 |
078 |
位运算、数组、回溯算法 |
子集 |
中等 |
079 |
数组、回溯算法 |
单词搜索 |
中等 |
080 |
数组、双指针 |
删除排序数组中的重复项 II |
中等 |
086 |
链表、双指针 |
分隔链表 |
中等 |
088 |
数组、双指针 |
合并两个有序数组 |
简单 |
089 |
回溯算法 |
格雷编码 |
中等 |
090 |
数组、回溯算法 |
子集II |
中等 |
091 |
字符串、动态规划 |
解码方法 |
中等 |
093 |
字符串、回溯算法 |
复原IP地址 |
中等 |
094 |
栈、树、哈希表 |
二叉树的中序遍历 |
中等 |
095 |
树、动态规划 |
不同的二叉搜索树 II |
中等 |
096 |
树、动态规划 |
不同的二叉搜索树 |
中等 |
098 |
树、深度优先搜索 |
验证二叉搜索树 |
中等 |
100 |
树、深度优先搜索 |
相同的树 |
简单 |
101 |
树、深度优先搜索、广度优先搜索 |
对称二叉树 |
简单 |
102 |
树、广度优先搜索 |
二叉树的层次遍历 |
中等 |
103 |
栈、树、广度优先搜索 |
二叉树的锯齿形层次遍历 |
中等 |
104 |
树、深度优先搜索 |
二叉树的深度 |
简单 |
105 |
树、深度优先搜索 |
从前序与中序遍历序列构造二叉树 |
中等 |
106 |
树、深度优先搜索 |
从中序与后序遍历序列构造二叉树 |
中等 |
107 |
树、广度优先搜索 |
二叉树的层次遍历 II |
简单 |
108 |
树、深度优先搜索 |
将有序数组转换为二叉搜索树 |
简单 |
110 |
树、深度优先搜索 |
平衡二叉树 |
简单 |
111 |
树、广度优先搜索、深度优先搜索 |
二叉树的最小深度 |
简单 |
112 |
树、深度优先搜索 |
路径总和 |
简单 |
113 |
树、深度优先搜索 |
路径总和 II |
中等 |
114 |
树、深度优先搜索 |
二叉树展开为链表 |
中等 |
120 |
数组、动态规划 |
三角形最小路径和 |
中等 |
121 |
数组、动态规划 |
买卖股票的最佳时机 |
简单 |
122 |
贪心算法、数组 |
买卖股票的最佳时机 II |
简单 |
123 |
动态规划、数组 |
买卖股票的最佳时机 III |
困难 |
125 |
字符串、双指针 |
验证回文串 |
简单 |
129 |
树、深度优先搜索 |
求根到叶子节点数字之和 |
中等 |
130 |
深度优先搜索、广度优先搜索、并查集 |
被围绕的区域 |
中等 |
131 |
回溯算法 |
分割回文串 |
中等 |
134 |
贪心算法 |
加油站 |
中等 |
136 |
位运算、哈希表 |
只出现一次的数字 |
简单 |
137 |
位运算 |
只出现一次的数字 II |
中等 |
139 |
动态规划 |
单词拆分 |
中等 |
141 |
链表、双指针 |
环形链表 |
简单 |
142 |
链表、双指针 |
环形链表 II |
中等 |
144 |
栈、树 |
二叉树的前序遍历 |
中等 |
145 |
栈、树 |
二叉树的后序遍历 |
困难 |
147 |
排序、链表 |
对链表进行插入排序 |
中等 |
148 |
排序、链表 |
排序链表 |
中等 |
152 |
数组、动态规划 |
乘积最大子序列 |
中等 |
167 |
数组、双指针、二分查找 |
两数之和 II - 输入有序数组 |
简单 |
179 |
排序 |
最大数 |
中等 |
198 |
动态规划 |
打家劫舍 |
简单 |
199 |
树、深度优先搜索、广度优先搜索 |
二叉树的右视图 |
中等 |
200 |
深度优先搜索、广度优先搜索、并查集 |
岛屿的个数 |
中等 |
206 |
链表 |
反转链表 |
简单 |
207 |
深度优先搜索、广度优先搜索、图、拓扑排序 |
课程表 |
中等 |
209 |
数组、双指针、二分查找 |
长度最小的子数组 |
中等 |
210 |
深度优先搜索、广度优先搜索、图、拓扑排序 |
课程表 II |
中等 |
211 |
设计、字典数、回溯算法 |
添加与搜索单词 - 数据结构设计 |
中等 |
212 |
字典数、回溯算法 |
单词搜索 II |
困难 |
213 |
动态规划 |
打家劫舍 II |
中等 |
216 |
数组、回溯算法 |
组合总和 III |
中等 |
220 |
二叉搜索树 |
存在重复元素 III |
中等 |
221 |
动态规划 |
最大正方形 |
中等 |
226 |
树 |
翻转二叉树 |
简单 |
234 |
链表、双指针 |
回文链表 |
简单 |
235 |
树 |
二叉搜索树的最近公共祖先 |
简单 |
236 |
树 |
二叉树的最近公共祖先 |
中等 |
242 |
排序、哈希表 |
有效的字母异位词 |
简单 |
260 |
位运算 |
只出现一次的数字 III |
中等 |
264 |
堆、数学、动态规划 |
丑数 II |
中等 |
274 |
排序、哈希表 |
H指数 |
中等 |
279 |
广度优先搜索、数学、动态规划 |
完全平方数 |
中等 |
283 |
数组、双指针 |
移动零 |
简单 |
287 |
数组、双指针、二分查找 |
寻找重复数 |
中等 |
300 |
二分查找、动态规划 |
最长上升子序列 |
中等 |
303 |
动态规划 |
区域和检索 - 数组不可变 |
简单 |
304 |
动态规划 |
二维区域和检索 - 矩阵不可变 |
中等 |
306 |
回溯算法 |
累加数 |
中等 |
309 |
回溯算法 |
最佳买卖股票时机含冷冻期 |
中等 |
322 |
动态规划 |
零钱兑换 |
中等 |
324 |
排序 |
摆动排序 II |
中等 |
337 |
树、深度优先搜索 |
打家劫舍 III |
中等 |
338 |
位运算、动态规划 |
比特位计数 |
中等 |
343 |
数学、动态规划 |
整数拆分 |
中等 |
344 |
字符串、双指针 |
反转字符串 |
简单 |
345 |
字符串、双指针 |
反转字符串中的元音字母 |
简单 |
349 |
排序、哈希表、双指针、二分查找 |
两个数组的交集 |
简单 |
350 |
排序、哈希表、双指针、二分查找 |
两个数组的交集 II |
简单 |
357 |
数学、动态规划、回溯算法 |
计算各个位数不同的数字个数 |
中等 |
368 |
数学、动态规划 |
最大整除子集 |
中等 |
375 |
极小化极大、动态规划 |
猜数字大小 II |
中等 |
376 |
动态规划、贪心算法 |
摆动序列 |
中等 |
377 |
动态规划 |
组合总和 Ⅳ |
中等 |
392 |
动态规划、贪心算法、二分查找 |
判断子序列 |
中等 |
394 |
栈、深度优先搜索 |
字符串解码 |
中等 |
402 |
栈、贪心算法 |
移掉K位数字 |
中等 |
404 |
树 |
左叶子之和 |
简单 |
406 |
贪心算法 |
根据身高重建队列 |
中等 |
413 |
数学、动态规划 |
等差数列划分 |
中等 |
416 |
动态规划 |
分割等和子集 |
中等 |
417 |
深度优先搜索、广度优先搜索 |
太平洋大西洋水流问题 |
中等 |
435 |
贪心算法 |
无重叠区间 |
中等 |
452 |
贪心算法 |
用最少数量的箭引爆气球 |
中等 |
455 |
贪心算法 |
分发饼干 |
简单 |
467 |
动态规划 |
环绕字符串中唯一的子字符串 |
中等 |
491 |
深度优先搜索 |
递增子序列 |
中等 |
513 |
树、深度优先搜索、广度优先搜索 |
找树左下角的值 |
中等 |
516 |
动态规划 |
最长回文子序列 |
中等 |
524 |
排序、双指针 |
通过删除字母匹配到字典里最长单词 |
中等 |
526 |
回溯算法 |
优美的排列 |
中等 |
530 |
二叉搜索树 |
二叉搜索树的最小绝对差 |
简单 |
532 |
排序、双指针 |
数组中的K-diff数对 |
简单 |
547 |
深度优先搜索、并查集 |
朋友圈 |
中等 |
559 |
树、深度优先搜索、广度优先搜索 |
N叉树的最大深度 |
简单 |
567 |
双指针 |
字符串的排列 |
中等 |
621 |
贪心算法、队列、数组 |
任务调度器 |
中等 |
649 |
贪心算法 |
Dota2 参议院 |
中等 |
659 |
堆、贪心算法 |
分割数组为连续子序列 |
中等 |
690 |
深度优先搜索、广度优先搜索、哈希表 |
员工的重要性 |
简单 |
695 |
深度优先搜索、数组 |
岛屿的最大面积 |
中等 |
713 |
数组、双指针 |
乘积小于K的子数组 |
中等 |
714 |
数组、数组、动态规划 |
买卖股票的最佳时机含手续费 |
中等 |
738 |
贪心算法 |
单调递增的数字 |
中等 |
763 |
贪心算法、双指针 |
划分字母区间 |
中等 |
767 |
堆、贪心算法、排序、字符串 |
重构字符串 |
中等 |
784 |
位运算、回溯算法 |
字母大小写全排列 |
简单 |
783 |
二叉搜索树 |
二叉搜索树结点最小距离 |
简单 |
826 |
双指针 |
安排工作以达到最大收益 |
中等 |
838 |
双指针 |
推多米诺 |
中等 |
841 |
双指针 |
字符的最短距离 |
简单 |
842 |
贪心算法、字符串、回溯算法 |
将数组拆分成斐波那契序列 |
中等 |
844 |
双指针 |
比较含退格的字符串 |
简单 |
845 |
双指针 |
数组中的最长山脉 |
中等 |
859 |
字符串 |
亲密字符串 |
中等 |
860 |
贪心算法 |
柠檬水找零 |
简单 |
861 |
贪心算法 |
翻转矩阵后的得分 |
中等 |
874 |
贪心算法 |
模拟行走机器人 |
简单 |
870 |
贪心算法、数组 |
优势洗牌 |
中等 |
881 |
双指针 |
救生艇 |
中等 |
904 |
双指针 |
水果成篮 |
中等 |
908 |
数学 |
最小差值 I |
简单 |
910 |
数学 |
最小差值 II |
中等 |
921 |
栈、贪心算法 |
使括号有效的最少添加 |
中等 |
922 |
排序、数组 |
按奇偶排序数组 II |
简单 |
923 |
双指针 |
三数之和的多种可能 |
中等 |
925 |
双指针、字符串 |
长按键入 |
简单 |
930 |
双指针、哈希表 |
和相同的二元子数组 |
中等 |
938 |
二叉搜索树 |
二叉搜索树的范围和 |
中等 |
944 |
贪心算法 |
删列造序 |
简单 |
948 |
贪心算法 |
令牌放置 |
中等 |
955 |
贪心算法 |
删列造序 II |
中等 |
969 |
排序、数组 |
煎饼排序 |
中等 |
973 |
排序、数学、分治算法 |
最接近原点的 K 个点 |
简单 |
984 |
贪心算法 |
不含 AAA 或 BBB 的字符串 |
简单 |
2.分类专题
二分搜索
题号 |
题目 |
难度 |
034 |
在排序数组中查找元素的第一个和最后一个位置 |
中等 |
069 |
x 的平方根 |
简单 |
153 |
寻找旋转排序数组中的最小值 |
中等 |
278 |
第一个错误的版本 |
简单 |
540 |
有序数组中的单一元素 |
中等 |
744 |
寻找比目标字母大的最小字母 |
简单 |
分治
题号 |
题目 |
难度 |
241 |
在排序数组中查找元素的第一个和最后一个位置 |
中等 |
广度优先搜索
题号 |
题目 |
难度 |
127 |
单词接龙 |
中等 |
279 |
完全平方数 |
中等 |
深度优先搜索
题号 |
题目 |
难度 |
130 |
被围绕的区域 |
中等 |
200 |
岛屿的个数 |
中等 |
417 |
太平洋大西洋水流问题 |
中等 |
547 |
朋友圈 |
中等 |
695 |
岛屿的最大面积 |
简单 |
回溯算法
题号 |
题目 |
难度 |
017 |
电话号码的字母组合 |
中等 |
022 |
括号生成 |
中等 |
037 |
解数独 |
中等 |
039 |
组合总和 |
中等 |
040 |
组合总和2 |
中等 |
046 |
全排列 |
中等 |
047 |
全排列2 |
中等 |
051 |
N皇后问题 |
中等 |
052 |
N皇后问题2 |
中等 |
060 |
第k个排列 |
中等 |
077 |
组合 |
中等 |
078 |
子集 |
中等 |
079 |
单词搜索 |
中等 |
089 |
格雷编码 |
中等 |
090 |
子集2 |
中等 |
093 |
复原IP地址 |
中等 |
131 |
分割回文串 |
中等 |
212 |
单词搜索2 |
困难 |
216 |
组合总和3 |
困难 |
257 |
二叉树的所有路径 |
困难 |
306 |
累加数 |
困难 |
贪心算法
题号 |
题目 |
难度 |
122 |
买卖股票的最佳时机 II |
简单 |
392 |
判断子序列 |
简单 |
406 |
据身高重建队列 |
简单 |
435 |
无重叠区间 |
简单 |
452 |
用最少数量的箭引爆气球 |
简单 |
455 |
分配饼干 |
简单 |
605 |
种花问题 |
简单 |
665 |
非递减数列 |
简单 |
763 |
划分字母区间 |
简单 |
动态规划
斐波那契数列
题号 |
题目 |
难度 |
053 |
最大子序和 |
简单 |
070 |
爬楼梯 |
简单 |
198 |
打家劫舍 |
简单 |
213 |
打家劫舍2 |
中等 |
矩阵路径
题号 |
题目 |
难度 |
062 |
不同路径 |
中等 |
064 |
最小路径和 |
中等 |
数组区间
题号 |
题目 |
难度 |
053 |
子数组最大的和 |
简单 |
303 |
数组区间和 |
简单 |
413 |
等差数列划分 |
中等 |
分割整数
题号 |
题目 |
难度 |
091 |
解码方法 |
中等 |
279 |
完全平方数 |
中等 |
343 |
整数拆分 |
中等 |
最长递增子序列
题号 |
题目 |
难度 |
300 |
最长递增子序列 |
中等 |
376 |
最长摆动子序列 |
中等 |
646 |
一组整数对能够构成的最长链 |
中等 |
0-1背包问题
题号 |
题目 |
难度 |
139 |
单词拆分 |
中等 |
322 |
零钱兑换 |
中等 |
377 |
组合总和 Ⅳ |
中等 |
416 |
分割等和子集 |
中等 |
474 |
一和零 |
中等 |
494 |
目标和 |
中等 |
字符串编辑
题号 |
题目 |
难度 |
072 |
编辑距离 |
中等 |
583 |
两个字符串的删除操作 |
中等 |
650 |
只有两个键的键盘 |
中等 |
数组
树
题号 |
题目 |
难度 |
235 |
二叉搜索树的最近公共祖先 |
简单 |
236 |
二叉树的最近公共祖先 |
中等 |
字典树
题号 |
题目 |
难度 |
208 |
实现 Trie (前缀树) |
中等 |
链表
题号 |
题目 |
难度 |
206 |
反转链表 |
简单 |
234 |
回文链表 |
中等 |
算法笔记
类型 |
题目 |
栈 |
双栈算术表达式求值 |
字符串 |
将字符串转换为数字 |
字符串 |
kmp算法实现 |
LRU算法 |
LRU算法 |
排序 |
常见排序算法 |
TOP-K问题 |
TOP-K问题 |
背包问题 |
01背包 |
背包问题 |
完全背包 |
背包问题 |
多重背包 |
背包问题 |
背包模板 |
二叉树 |
二叉树的递归与非递归遍历 |
红黑树 |
红黑树 |
动态规划 |
最长公共子序列 |
读书笔记
类型 |
链接 |
推荐指数 |
编程之法 |
编程之法 |
⭐️⭐️ |
算法(第四版) |
算法(第四版) |
⭐️⭐️⭐️⭐️ |
剑指offer(第二版) |
剑指offer(第二版) |
⭐️⭐️⭐️⭐️⭐️ |