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(第二版) |
⭐️⭐️⭐️⭐️⭐️ |