此项目建议搭配Code tree for GitHub效果更佳。
环境说明: Java8
题号 | 相关话题 | 题目 | 难度 |
---|---|---|---|
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 的字符串 | 简单 |
题号 | 题目 | 难度 |
---|---|---|
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 | 一组整数对能够构成的最长链 | 中等 |
题号 | 题目 | 难度 |
---|---|---|
139 | 单词拆分 | 中等 |
322 | 零钱兑换 | 中等 |
377 | 组合总和 Ⅳ | 中等 |
416 | 分割等和子集 | 中等 |
474 | 一和零 | 中等 |
494 | 目标和 | 中等 |
题号 | 题目 | 难度 |
---|---|---|
072 | 编辑距离 | 中等 |
583 | 两个字符串的删除操作 | 中等 |
650 | 只有两个键的键盘 | 中等 |
题号 | 题目 | 难度 |
---|---|---|
048 | 旋转图像 | 中等 |
题号 | 题目 | 难度 |
---|---|---|
235 | 二叉搜索树的最近公共祖先 | 简单 |
236 | 二叉树的最近公共祖先 | 中等 |
题号 | 题目 | 难度 |
---|---|---|
208 | 实现 Trie (前缀树) | 中等 |
题号 | 题目 | 难度 |
---|---|---|
206 | 反转链表 | 简单 |
234 | 回文链表 | 中等 |
类型 | 题目 |
---|---|
栈 | 双栈算术表达式求值 |
字符串 | 将字符串转换为数字 |
字符串 | kmp算法实现 |
LRU算法 | LRU算法 |
排序 | 常见排序算法 |
TOP-K问题 | TOP-K问题 |
背包问题 | 01背包 |
背包问题 | 完全背包 |
背包问题 | 多重背包 |
背包问题 | 背包模板 |
二叉树 | 二叉树的递归与非递归遍历 |
红黑树 | 红黑树 |
动态规划 | 最长公共子序列 |
类型 | 链接 | 推荐指数 |
---|---|---|
编程之法 | 编程之法 | ⭐️⭐️ |
算法(第四版) | 算法(第四版) | ⭐️⭐️⭐️⭐️ |
剑指offer(第二版) | 剑指offer(第二版) | ⭐️⭐️⭐️⭐️⭐️ |