LeetCode题型分类总结(持续更新)
目前已经将前100题的Java和C++题解链接整理完毕,也可以参照github上力扣每题的代码(代码语言:Java、C++):github地址
数组
- Leetcode 0004 寻找两个正序数组的中位数 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0027 移除元素 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0041 缺失的第一个正数 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0048 旋转图像 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0054 螺旋矩阵 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0055 跳跃游戏 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0059 螺旋矩阵 II ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0073 矩阵置零 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0189 旋转数组 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0228 汇总区间 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0238 除以自身以外数组的乘积 ----> 题目链接 ----> 我的解答:Java、C++ (前缀和、后缀和)
- Leetcode 0240 搜索二维矩阵 II ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0724 寻找数组的中心索引 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0274 H指数 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0324 摆动排序 II ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0448 找到所有数组中消失的数字 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0674 最长连续递增序列 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0766 托普利茨矩阵 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0832. 翻转图像 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0867 转置矩阵 ----> 题目链接 ----> 我的解答:Java、C++
----> 题目链接 ----> 我的解答:Java、C++
链表
- Leetcode 0002 两数之和 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0019 删除链表的倒数第N个节点 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0021 合并两个有序链表 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0023 合并K个有序链表 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0024 两两交换链表中的节点 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0061 旋转链表 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0082 删除排序链表中的重复元素 II ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0083 删除排序链表中的重复元素 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0086 分隔链表 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0092 反转链表 II ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0141 环形链表 ----> 题目链接 ----> 我的解答:Java、C++ (快慢指针)
- Leetcode 0142 环形链表 II ----> 题目链接 ----> 我的解答:Java、C++ (快慢指针)
- Leetcode 0143 重排链表 ----> 题目链接 ----> 我的解答:Java、C++ (快慢指针)
- Leetcode 0147 链表进行插入排序 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0148 排序链表 ----> 题目链接 ----> 我的解答:Java、C++ (对链表进行归并排序)
- Leetcode 0160 相交链表 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0203 移除链表元素 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0206 反转链表 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0234 回文链表 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0237 删除链表中的节点 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0328 奇偶链表 ----> 题目链接 ----> 我的解答:Java、C++
----> 题目链接 ----> 我的解答:Java、C++
栈
- Leetcode 0020 有效的括号 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0071 简化路径 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0084 柱状图中的最大矩形 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0085 最大矩形 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0150 逆波兰式表达式求值 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0316 去除重复字母 ----> 题目链接 ----> 我的解答:Java、C++ (类似于单调栈)
- Leetcode 0321 拼接最大数 ----> 题目链接 ----> 我的解答:Java、C++ (类似于单调栈+贪心)
- Leetcode 0388 文件的最长绝对路径 ----> 题目链接 ----> 我的解答:Java、C++ (文件关系可以看成树)
----> 题目链接 ----> 我的解答:Java、C++
队列
二叉树
- Leetcode 0094 二叉树的中序遍历 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0095 不同的二叉搜索树 II ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0098 验证二叉搜索树 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0100 相同的树 ----> 题目链接 ----> 我的解答:Java、C++
- Leetocde 0101 对称二叉树 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0102 二叉树的层序遍历 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0103 二叉树的锯齿形层序遍历 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0104 二叉树的最大深度 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0105 从前序与中序遍历序列构造二叉树 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0106 从中序遍历与后续遍历序列构造二叉树 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0107 二叉树的层序遍历 II ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0108 将有序数组转化为二叉搜索树 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0109 将有序链表转换二叉搜索树 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0110 平衡二叉树 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0111 二叉树的最小深度 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0112 路径总和 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0113 路径总和 II ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0114 二叉树展开为链表 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0116 填充每个节点的下一个右侧节点指针 ----> 题目链接 ----> 我的解答:Java、C++
- LeetCode 0117 填充每个节点的下一个右侧节点指针 II ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0129 求根到叶子节点数字之和 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0144 二叉树的前序遍历 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0145 二叉树的后序遍历 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0199 二叉树的右视图 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0222 完全二叉树的节点个数 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0226 翻转二叉树 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0235 二叉搜索树的最近公共祖先 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0236 二叉树的最近公共祖先 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0257 二叉树的所有路径 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0297 二叉树的序列化与反序列化 ----> 题目链接 ----> 我的解答:Java、C++
----> 题目链接 ----> 我的解答:Java、C++
树
图论
- Leetcode 0127 单词接龙 ----> 题目链接 ----> 我的解答:Java、C++ (BFS求最短路径)
- Leetcode 0207 课程表 ----> 题目链接 ----> 我的解答:Java、C++ (拓扑排序)
- Leetcode 0210 课程表 II ----> 题目链接 ----> 我的解答:Java、C++ (拓扑排序)
- Leetcode 0332 重新安排行程 ----> 题目链接 ----> 我的解答:Java、C++ (欧拉路径)
- Leetcode 0399 除法求值 ----> 题目链接 ----> 我的解答:Java、C++ (Floyd)
- Leetcode 1203 项目管理 ----> 题目链接 ----> 我的解答:Java、C++ (拓扑排序)
- Leetcode 1489 找到最小生成树里的关键边和伪关键边 ----> 题目链接 ----> 我的解答:Java、C++ (Kruskal)
- Leetcode 1584 连接所有点的最小费用 ----> 题目链接 ----> 我的解答:Java、C++ (prim)
- Leetcode 1631 最小体力消耗路径 ----> 题目链接 ----> 我的解答:Java、C++ (dijkstra)
----> 题目链接 ----> 我的解答:Java、C++
字符串
- Leetcode 0005 最长回文子串 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0006 Z字形变换 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0008 字符串转换整数 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0014 最长公共前缀 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0028 实现strStr() ----> 题目链接 ----> 我的解答:Java、C++ (KMP)
- Leetcode 0038 外观数列 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0058 最后一个单词的长度 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0151 翻转字符串里的单词 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0165 比较版本号 ----> 题目链接 ----> 我的解答:Java、C++
----> 题目链接 ----> 我的解答:Java、C++
哈希表
- LeetCode 0001 两数相加 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0049 字母异位词分组 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0128 最长连续序列 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0202 快乐数 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0205 同构字符串 ----> 题目链接 ----> 我的解答:Java、C++ (双射)
- Leetcode 0242 有效的字母异位词 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0290 单词规律 ----> 题目链接 ----> 我的解答:Java、C++ (双射)
- LeetCode 0336. 回文对 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0523 连续的子数组和 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0697 数组的度 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0888 公平的糖果棒交换 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 1128 等价多米诺骨牌对的数量 ----> 题目链接 ----> 我的解答:Java、C++
- ----> 题目链接 ----> 我的解答:Java、C++
并查集
- Leetcode 0547 省份数量 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0684 冗余连接 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0685 冗余连接 II ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0721 账户合并 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0765 情侣牵手 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0803 打砖块 ----> 题目链接 ----> 我的解答:Java、C++ (逆向思维)
- Leetcode 0947 移除最多的同行或同列石头 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0959 由斜杠划分区域 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0990 等式方程的可满足性 ----> 题目链接 ----> 我的解答:Java、C++
- LeetCode 1202 交换字符串中的元素 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 1319 联通网络的操作次数 ----> 题目链接 ----> 我的解答:Java、C++
- LeetCode 1579 保证图可完全遍历 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0839 相似的字符串 ----> 题目链接 ----> 我的解答:Java、C++
----> 题目链接 ----> 我的解答:Java、C++
堆、优先队列
- Leetcode 0215 数组中的第K个最大元素 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0295 数据流的中位数 ----> 题目链接 ----> 我的解答:Java、C++ (对顶堆)
- Leetcode 0313 超级丑数 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0480 滑动窗口中位数 ----> 题目链接 ----> 我的解答:Java、C++ (对顶堆,multiset实现)
- Leetcode 0703 数据流中的第 K 大元素 ----> 题目链接 ----> 我的解答:Java、C++
Trie(字典树)
- Leetcode 0208 实现Trie(前缀树) ----> 题目链接 ----> 我的解答:Java、C++ (字典树)
- Leetcode 0211 添加与搜索单词 ----> 题目链接 ----> 我的解答:Java、C++ (字典树)
树状数组
- Leetcode 0307 区域和检索 - 数组可变 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0315 计算右侧小于当前元素的个数 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0327 区间和的个数 ----> 题目链接 ----> 我的解答:Java、C++ (前缀和+离散化+树状数组)
双指针
- Leetcode 0003 无重复字符的最长子串 ----> 题目链接 ----> 我的解答:Java、C++ (滑动窗口)
- Leetcode 0011 盛最多水的容器 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0015 三数之和 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0016 最接近的三数之和 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0018 四数之和 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0026 删除排序数组的重复项 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0075 颜色分类 ----> 题目链接 ----> 我的解答:Java、C++ (三数排序)
- Leetcode 0076 最小覆盖子串 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0080 删除排序数组中的重复项 II ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0088 合并两个有序数组 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0125 验证回文串 ----> 题目链接 ----> 我的解答:Java、C++ (对撞指针)
- Leetcode 0167 两数之和 II - 输入有序数组 ----> 题目链接 ----> 我的解答:Java、C++ (对撞指针)
- Leetcode 0209 长度最小的子数组 ----> 题目链接 ----> 我的解答:Java、C++ (滑动窗口)
- Leetcode 0283 移动零 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0287 寻找重复数 ----> 题目链接 ----> 我的解答:Java、C++ (可以转换为leetcode 0142)
- LeetCode 0392 判断子序列 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0395 至少有K个重复字符的最长子串 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0485 最大连续1的个数 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0567 字符串的排列 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 1004 最大连续1的个数 III ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 1052. 爱生气的书店老板 ----> 题目链接 ----> 我的解答:Java、C++ (滑动窗口)
----> 题目链接 ----> 我的解答:Java、C++
递归回溯
- Leetcode 0017 电话号码的字母组合 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0022 括号生成 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0046 全排列 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0047 全排列 II ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0051 N皇后 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0052 N皇后 II ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0060 排列序列 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0077 组合 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0079 单词搜索 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0093 复原IP地址 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0131 分割回文串 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0200 岛屿数量 ----> 题目链接 ----> 我的解答:Java、C++ (floodfill算法)
- Leetcode 0212 单词搜索 II ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0282 给表达式添加运算符 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0301 删除无效的括号 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0394 字符串解码 ----> 题目链接 ----> 我的解答:Java、C++
----> 题目链接 ----> 我的解答:Java、C++
二分
- Leetcode 0033 搜索旋转排序数组 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0034 在排序数组中查找元素的第一个和最后一个位置 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0035 搜索插入位置 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0069 x的平方根 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0081 搜索旋转排序数组 II ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0153 寻找旋转排序数组中的最小值 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0154 寻找旋转排序数组中的最小值 II ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0162 寻找峰值 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0275 H指数 II ----> 题目链接 ----> 我的解答:Java、C++
- ----> 题目链接 ----> 我的解答:Java、C++
位运算
- Leetcode 0078 子集 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0136 只出现一次的数字 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0137 只出现一次的数字 II ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0191 位1的个数 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0201 数字范围按位与 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0260 只出现一次的数字 III ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0289 生命游戏 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0318 最大单词长度乘积 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0338. 比特位计数 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0389 找不同 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0393 UTF-8 编码验证 ----> [题目链接]( ----> 题目链接 ----> 我的解答:Java、C++ ) ----> 我的解答:Java、C++ (模拟题)
----> 题目链接 ----> 我的解答:Java、C++
数学
- Leetcode 0007 整数反转 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0009 回文数 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0012 整数转罗马数字 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0013 罗马数字转整数 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0029 两数相除 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0031 下一个排列 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0043 字符串相乘 ----> 题目链接 ----> 我的解答:Java、C++ (高精度乘法)
- Leetcode 0050 Pow(x, n) ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0066 加一 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0067 二进制加和 ----> 题目链接 ----> 我的解答:Java、C++ (高精度加法)
- Leetcode 0070 爬楼梯 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0118 杨辉三角 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0119 杨辉三角 II ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0166 分数到小数 ----> 题目链接 ----> 我的解答:Java、C++ (数学、哈希)
- Leetcode 0168 Excel表列名称 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0204 计数质数 ----> 题目链接 ----> 我的解答:Java、C++ (埃拉托色尼筛选法)
- Leetcode 0231 2的幂 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0258 各位相加 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0263 丑数 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0264 丑数 II ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0292 Nim游戏 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0299 猜数字游戏 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0306 累加数 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0319 灯泡开关 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0326 3的幂 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0335 交叉路径 ----> 题目链接 ----> 我的解答:Java、C++ (找规律)
- Leetcode 0342 4的幂 ----> 题目链接 ----> 我的解答:Java、C++
----> 题目链接 ----> 我的解答:Java、C++
动态规划
- Leetcode 0010 正则表达式匹配 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0053 最大子序和 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0062 不同路径 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0063 不同路径II ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0064 最小路径和 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0091 解码方法 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0096 不同的二叉搜索树 ----> 题目链接 ----> 我的解答:Java、C++ (卡特兰数)
- Leetcode 0097 交错字符串 ----> 题目链接 ----> 我的解答:Java、C++ (类似于LCS问题)
- Leetcode 0120 三角形最小路径和 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0132 分割回文串 II ----> 题目链接 ----> 我的解答:Java、C++ (预处理思想)
- Leetcode 0139 单词拆分 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0140 单词拆分 II ----> 题目链接 ----> 我的解答:Java、C++ (动态规划+回溯)
- Leetcode 0152 乘积最大子数组 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0221 最大正方形 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0279 完全平方数 ----> 题目链接 ----> 我的解答:Java、C++ (完全背包问题)
- Leetcode 0300 最长上升子序列 ----> 题目链接 ----> 我的解答:Java、C++ (经典的LIS问题,还可以使用贪心+二分求解)
- Leetcode 0312 戳气球 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0322 零钱兑换 ----> 题目链接 ----> 我的解答:Java、C++ (完全背包问题)
- Leetcode 0329 矩阵中的最长递增路径 ----> 题目链接 ----> 我的解答:Java、C++ (经典的记忆化搜索问题)
- Leetcode 0334 递增的三元子序列 ----> 题目链接 ----> 我的解答:Java、C++ (简化版的LIS问题)
- Leetcode 0978 最长湍流子数组 ----> 题目链接 ----> 我的解答:Java、C++ (还可以用双指针解决)
----> 题目链接 ----> 我的解答:Java、C++
贪心
- Leetcode 0135 分发糖果 ----> 题目链接 ----> 我的解答:Java、C++ (贪心+记忆化搜索)
- Leetcode 0330 按要求补齐数组 ----> 题目链接 ----> 我的解答:Java、C++
数据结构设计
- Leetcode 0146 LRU缓存机制 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0155 最小栈 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0225 用队列实现栈 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0232 用栈实现队列 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0284 顶端迭代器 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0303 区域和检索 - 数组不可变 ----> 题目链接 ----> 我的解答:Java、C++ (一维前缀和)
- Leetcode 0304 二维区域和检索 - 矩阵不可变 ----> 题目链接 ----> 我的解答:Java、C++ (二维前缀和)
- Leetcode 0341 扁平化嵌套列表迭代器 ----> 题目链接 ----> 我的解答:Java、C++ (树的遍历)
----> 题目链接 ----> 我的解答:Java、C++
其他
- Leetcode 0032 最长有效括号 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0134 加油站 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0164 最大间距 ----> 题目链接 ----> 我的解答:Java、C++ (桶排序)
- Leetcode 0169 多数元素 ----> 题目链接 ----> 我的解答:Java、C++ (摩尔投票法)
- Leetcode 0133 克隆图 ----> 题目链接 ----> 我的解答:Java、C++ (深拷贝)
- Leetcode 0138 复制带随机指针的链表 ----> 题目链接 ----> 我的解答:Java、C++ (深拷贝)
- Leetcode 0273 整数转英文表示 ----> 题目链接 ----> 我的解答:Java、C++ (模拟)
- Leetcode 0390 消除游戏 ----> 题目链接 ----> 我的解答:Java、C++ (约瑟夫问题)
- Leetcode 0995 K 连续位的最小翻转次数 ----> 题目链接 ----> 我的解答:Java、C++ (递推、差分)
系列题目
数独(回溯)
组合总和(回溯)
- Leetcode 0039 组合总和 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0040 组合总和 II ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0216 组合问题 III ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0377 组合总和 Ⅳ
区间问题(贪心)
股票问题
- Leetcode 0121 买卖股票的最佳时机 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0122 买卖股票的最佳时机 II ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0123 买卖股票的最佳时机 III ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0188 买卖股票的最佳时机 IV ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0309 最佳买卖股票时机含冷冻期 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0714 买卖股票的最佳时机含手续费 ----> 题目链接 ----> 我的解答:Java、C++
存在重复元素(哈希表)
- Leetcode 0217 存在重复元素 ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0219 存在重复元素 II ----> 题目链接 ----> 我的解答:Java、C++
- Leetcode 0220 存在重复元素 III ----> 题目链接 ----> 我的解答:Java、C++
----> 题目链接 ----> 我的解答:Java、C++