LeetCode
Modnar的LeetCode刷题之旅。
标记 |
标记涵义 |
标记 |
标记涵义 |
❌ |
初次尝试时思路出错 |
⚠️ |
警告!需要及时复习 |
🤔 |
感谢他人的题解思路、需要再回顾思考 |
⭐️ |
我认为的好题/好代码 |
✅ |
自2020.03.01开始的打卡活动完成打卡 |
🐧 |
腾讯精选练习50题 |
👨💻 |
精选TOP面试题 |
🔥 |
热题HOT 100 |
🗡 |
剑指offer(第二版) |
🚧 |
暂时未完成(TODO) |
目录
基本题库
# |
题目 |
题解 |
难度 |
标记 |
时间 |
备注 |
A0001 |
两数之和 |
cpp |
简单 |
🤔, 🔥, 👨💻 |
20/02/20 |
|
A0002 |
两数相加 |
cpp |
中等 |
🤔, 🐧, 🔥, 👨💻 |
20/02/20 |
|
A0003 |
无重复字符的最长子串 |
cpp |
中等 |
🤔, 🔥, 👨💻, ✅ |
20/02/20 |
|
A0004 |
寻找两个有序数组的中位数 |
cpp |
困难 |
⚠️, 🤔, 🐧, 🔥, 👨💻 |
20/02/25 |
切分法 |
A0005 |
最长回文子串 |
cpp |
中等 |
🐧, 🔥, 👨💻, ✅ |
20/02/23 |
整数除法取整 |
A0006 |
Z字形变换 |
cpp |
中等 |
🤔 |
20/02/22 |
|
A0007 |
整数反转 |
cpp |
简单 |
🐧, 👨💻 |
20/02/21 |
|
A0008 |
字符串转换整数 (atoi) |
cpp |
中等 |
🐧, 👨💻 |
20/03/03 |
整数溢出判断 |
A0009 |
回文数 |
cpp |
简单 |
🐧 |
20/02/21 |
|
A0010 |
正则表达式匹配 |
cpp |
困难 |
🚧 |
|
|
A0011 |
盛最多水的容器 |
cpp |
中等 |
🐧, 🔥, 👨💻, ✅ |
20/02/23 |
|
A0012 |
整数转罗马数字 |
cpp |
中等 |
|
20/02/23 |
|
A0013 |
罗马数字转整数 |
cpp |
简单 |
👨💻 |
20/02/23 |
|
A0014 |
最长公共前缀 |
cpp |
简单 |
🐧, 👨💻 |
20/02/23 |
|
A0015 |
三数之和 |
cpp |
中等 |
⚠️, 🤔, 🐧, 🔥, 👨💻 |
20/02/29 |
|
A0016 |
最接近的三数之和 |
cpp |
中等 |
🐧, 🚧 |
20/02/29 |
|
A0017 |
电话号码的字母组合 |
cpp |
中等 |
👨💻 |
20/03/04 |
回溯(TODO) |
A0019 |
删除链表的倒数第N个节点 |
cpp |
中等 |
👨💻 |
20/03/05 |
阅读题解(TODO) |
A0020 |
有效的括号 |
cpp |
简单 |
🐧, 🔥, 👨💻 |
20/02/21 |
|
A0021 |
合并两个有序链表 |
cpp |
简单 |
🐧, 🔥, 👨💻, ✅ |
20/02/21 |
|
A0022 |
括号生成 |
cpp |
中等 |
❌, ⚠️, 🤔, ✅ |
20/04/09 |
回溯 |
A0023 |
合并K个排序链表 |
cpp |
困难 |
🐧, 🔥, 👨💻, ✅ |
20/02/21 |
|
A0024 |
两两交换链表中的节点 |
cpp |
中等 |
|
20/03/07 |
|
A0025 |
K 个一组翻转链表 |
cpp |
困难 |
🚧, ✅ |
20/05/16 |
|
A0026 |
删除排序数组中的重复项 |
cpp |
简单 |
🐧, 👨💻 |
20/02/22 |
|
A0027 |
移除元素 |
cpp |
简单 |
|
20/03/01 |
双指针法 |
A0028 |
实现 strStr() |
cpp |
简单 |
👨💻 |
|
字符串匹配 |
A0031 |
下一个排列 |
cpp |
中等 |
🚧, ✅ |
20/05/14 |
STL |
A0033 |
搜索旋转排序数组 |
cpp |
中等 |
🐧, 🔥, 👨💻, ✅ |
20/03/01 |
|
A0034 |
在排序数组中查找元素的第一个和最后一个位置 |
cpp |
中等 |
🤔, 👨💻 |
20/03/06 |
二分搜索改进 |
A0035 |
搜索插入位置 |
cpp |
简单 |
|
20/03/29 |
二分搜索改进, STL |
A0036 |
有效的数独 |
cpp |
中等 |
🤔, 👨💻 |
20/03/09 |
数组下标计算 |
A0038 |
外观数列 |
cpp |
简单 |
|
20/03/11 |
0ms |
A0042 |
接雨水 |
cpp |
困难 |
⚠️, 🤔, ✅ |
20/04/04 |
栈的应用 |
A0043 |
字符串相乘 |
cpp |
中等 |
⚠️, 🤔, 🐧 |
20/03/01 |
|
A0045 |
跳跃游戏 II |
cpp |
困难 |
🤔, ⚠️, ✅ |
20/05/04 |
贪心 |
A0046 |
全排列 |
cpp |
中等 |
⚠️, 🤔, 🐧, 🔥, 👨💻, ✅ |
20/03/03 |
回溯算法, STL |
A0047 |
全排列 II |
cpp |
中等 |
🤔 |
20/03/03 |
回溯 & 剪枝 |
A0048 |
旋转图像 |
cpp |
中等 |
👨💻 |
20/03/09 |
数组下标计算 |
A0049 |
字母异位词分组 |
cpp |
中等 |
🤔 |
20/03/15 |
哈希散列表 |
A0050 |
Pow(x, n) |
cpp |
中等 |
🤔, ⚠️, ✅ |
20/05/11 |
快速幂 |
A0053 |
最大子序和 |
cpp |
简单 |
🐧, 🔥, 👨💻, ✅ |
20/02/26 |
贪心&分治 |
A0054 |
螺旋矩阵 |
cpp |
中等 |
🐧, 👨💻 |
20/02/25 |
|
A0055 |
跳跃游戏 |
cpp |
中等 |
❌, 🤔, ⚠️, ✅ |
20/04/18 |
贪心 |
A0058 |
最后一个单词的长度 |
cpp |
简单 |
|
20/03/16 |
|
A0059 |
螺旋矩阵 II |
cpp |
中等 |
🐧 |
20/02/29 |
|
A0061 |
旋转链表 |
cpp |
中等 |
🐧 |
20/02/29 |
|
A0062 |
不同路径 |
cpp |
中等 |
🐧, 🔥, 👨💻 |
20/02/29 |
|
A0069 |
x 的平方根 |
cpp |
简单 |
🤔, 👨💻, ✅ |
20/03/12 |
|
A0070 |
爬楼梯 |
cpp |
简单 |
🐧, 🔥, 👨💻 |
20/02/22 |
|
A0072 |
编辑距离 |
cpp |
困难 |
✅ |
20/04/06 |
动态规划 |
A0073 |
矩阵置零 |
cpp |
中等 |
⚠️, 🤔, 👨💻 |
20/03/06 |
|
A0078 |
子集 |
cpp |
中等 |
🐧, 🔥, 👨💻 |
20/02/26 |
|
A0082 |
删除排序链表中的重复元素 II |
cpp |
中等 |
✅ |
21/03/25 |
|
A0088 |
合并两个有序数组 |
cpp |
简单 |
🐧, 👨💻 |
20/02/22 |
|
A0089 |
格雷编码 |
cpp |
中等 |
🤔, 🐧 |
20/02/24 |
格雷编码 |
A0094 |
二叉树的中序遍历 |
cpp |
中等 |
🤔, 👨💻 |
20/03/09 |
递归 & 迭代 |
A0098 |
验证二叉搜索树 |
cpp |
中等 |
🤔, ✅ |
20/03/26 |
递归 & 迭代 |
A0100 |
相同的树 |
cpp |
简单 |
🤔, ⭐️ |
20/03/26 |
层序遍历(两个队列), 深度优先搜索 |
A0102 |
二叉树的层序遍历 |
cpp |
中等 |
✅ |
20/05/13 |
层序遍历 |
A0104 |
二叉树的最大深度 |
cpp |
简单 |
🐧, 🔥, 👨💻 |
20/03/10 |
递归 & 迭代 |
A0111 |
二叉树的最小深度 |
cpp |
简单 |
|
20/02/23 |
递归 |
A0121 |
买卖股票的最佳时机 |
cpp |
简单 |
✅, 🐧, 🔥, 👨💻 |
20/02/25 |
|
A0122 |
买卖股票的最佳时机 II |
cpp |
简单 |
🐧, 👨💻 |
20/02/25 |
|
A0124 |
二叉树中的最大路径和 |
cpp |
困难 |
⚠️, 🤔, 🐧, 🔥, 👨💻 |
20/03/01 |
|
A0125 |
验证回文串 |
cpp |
简单 |
|
20/05/19 |
双指针 |
A0136 |
只出现一次的数字 |
cpp |
简单 |
🐧, 🔥, 👨💻, ✅ |
20/02/25 |
位异或运算 |
A0137 |
只出现一次的数字 II |
cpp |
中等 |
🤔, ⭐️ |
20/02/25 |
位运算 |
A0141 |
环形链表 |
cpp |
简单 |
🐧, 🔥, 👨💻 |
20/02/25 |
快慢指针 |
A0142 |
环形链表 II |
cpp |
中等 |
🤔, 🐧, 🔥 |
20/02/28 |
快慢指针 |
A0146 |
LRU缓存机制 |
cpp |
中等 |
🤔, 🐧, 🔥, 🚧, 👨💻 |
20/02/28 |
|
A0148 |
排序链表 |
cpp |
中等 |
🤔, 🐧, 🔥, 🚧, 👨💻 |
20/02/28 |
|
A0151 |
翻转字符串里的单词 |
cpp |
中等 |
✅, ⭐️ |
20/04/10 |
|
A0152 |
乘积最大子数组 |
cpp |
中等 |
🚧, ✅ |
20/05/18 |
|
A0153 |
寻找旋转排序数组中的最小值 |
cpp |
中等 |
⚠️, 🤔, ⭐️ |
20/03/14 |
二分 |
A0154 |
寻找旋转排序数组中的最小值 II |
cpp |
困难 |
⚠️, 🤔, ⭐️ |
20/03/14 |
二分 |
A0155 |
最小栈 |
cpp |
简单 |
🤔, 🐧, 🔥, 👨💻, ✅ |
20/02/25 |
辅助栈 |
A0160 |
相交链表 |
cpp |
简单 |
🐧, 🔥, 👨💻 |
20/02/25 |
双指针求双链表公共结点 |
A0167 |
两数之和 II - 输入有序数组 |
cpp |
简单 |
|
20/02/20 |
|
A0169 |
多数元素 |
cpp |
简单 |
🤔, 🐧, 🔥, 👨💻 |
20/02/25 |
Boyer-Moore投票法 |
A0191 |
位1的个数 |
cpp |
简单 |
✅ |
21/03/22 |
|
A0199 |
二叉树的右视图 |
cpp |
中等 |
⚠️, 🤔, 🚧 |
20/04/22 |
|
A0200 |
岛屿数量 |
cpp |
中等 |
❌, ⚠️, 🤔, ✅ |
20/04/20 |
DFS/BFS/并查集 |
A0202 |
快乐数 |
cpp |
简单 |
✅ |
20/04/30 |
数学 |
A0206 |
反转链表 |
cpp |
简单 |
✅, 🐧, 🔥, 👨💻 |
20/02/25 |
C++迭代 递归&迭代 |
A0210 |
课程表 II |
cpp |
中等 |
🚧, ✅ |
20/05/17 |
|
A0215 |
数组中的第K个最大元素 |
cpp |
中等 |
🤔, 🐧, 🔥, 🚧, 👨💻 |
20/02/27 |
|
A0217 |
存在重复元素 |
cpp |
简单 |
🐧, 👨💻 |
20/02/23 |
|
A0221 |
最大正方形 |
cpp |
中等 |
⚠️, 🤔, ✅ |
20/05/08 |
动态规划 |
A0225 |
用队列实现栈 |
cpp |
简单 |
✅ |
20/03/01 |
题解 |
A0229 |
求众数 II |
cpp |
中等 |
🤔 |
20/02/23 |
Boyer-Moore投票法 |
A0230 |
二叉搜索树中第K小的元素 |
cpp |
中等 |
🤔, 🐧, 👨💻 |
20/02/26 |
递归&迭代 |
A0231 |
2的幂 |
cpp |
简单 |
🤔, 🐧 |
20/02/23 |
位运算 |
A0234 |
回文链表 |
cpp |
简单 |
🤔, 🔥, 👨💻 |
20/02/21 |
|
A0235 |
二叉搜索树的最近公共祖先 |
cpp |
简单 |
🤔, 🐧 |
20/02/25 |
递归&迭代 |
A0236 |
二叉树的最近公共祖先 |
cpp |
中等 |
🤔, 🐧, 🔥, 🚧, 👨💻, ✅ |
20/02/28 |
递归&迭代 |
A0237 |
删除链表中的节点 |
cpp |
简单 |
⭐️, 🐧, 👨💻 |
20/02/23 |
|
A0238 |
除自身以外数组的乘积 |
cpp |
中等 |
🤔, 🐧, 🔥, 👨💻 |
20/02/26 |
乘积列表 |
A0260 |
只出现一次的数字 III |
cpp |
中等 |
|
20/02/25 |
位运算 |
A0289 |
生命游戏 |
cpp |
中等 |
🤔, ✅ |
20/04/02 |
添加复合状态 |
A0292 |
Nim游戏 |
cpp |
简单 |
|
20/02/23 |
|
A0300 |
最长上升子序列 |
cpp |
中等 |
🤔, ✅ |
20/03/13 |
动态规划、贪心+二分 |
A0303 |
区域和检索 - 数组不可变 |
cpp |
简单 |
✅ |
21/03/01 |
|
A0304 |
二维区域和检索 - 矩阵不可变 |
cpp |
简单 |
✅ |
21/03/02 |
|
A0319 |
灯泡开关 |
cpp |
中等 |
🤔, ✅ |
20/03/11 |
思维 |
A0322 |
零钱兑换 |
cpp |
中等 |
⚠️, 🤔, ✅ |
20/03/08 |
动态规划 |
A0344 |
反转字符串 |
cpp |
简单 |
🐧, 👨💻 |
20/02/23 |
|
A0365 |
水壶问题 |
cpp |
中等 |
⚠️, 🤔, ✅ |
20/03/21 |
|
A0409 |
最长回文串 |
cpp |
简单 |
|
20/03/19 |
|
A0460 |
LFU缓存 |
cpp |
困难 |
⚠️, 🤔, 🚧, ✅ |
|
|
A0466 |
统计重复个数 |
cpp |
困难 |
🚧, ⚠️, 🤔, ✅ |
20/04/19 |
|
A0540 |
有序数组中的单一元素 |
cpp |
中等 |
|
20/03/06 |
|
A0543 |
二叉树的直径 |
cpp |
简单 |
🤔, ✅ |
20/03/10 |
|
A0557 |
反转字符串中的单词 III |
cpp |
简单 |
🐧 |
20/02/23 |
|
A0560 |
和为K的数组 |
cpp |
中等 |
🚧, ⚠️, 🤔, ✅ |
20/05/15 |
前缀和 |
A0572 |
另一个树的子树 |
cpp |
简单 |
⚠️, 🤔, ✅ |
20/05/07 |
|
A0680 |
验证回文字符串 Ⅱ |
cpp |
简单 |
🤔, ✅ |
20/05/19 |
贪心 & 双指针 |
A0695 |
岛屿的最大面积 |
cpp |
中等 |
✅ |
20/03/15 |
深度优先搜索 |
A0739 |
每日温度 |
cpp |
中等 |
✅, 🤔 |
20/06/11 |
暴力, 最小栈 |
A0766 |
托普利茨矩阵 |
cpp |
简单 |
✅ |
21/02/22 |
暴力 |
A0820 |
单词的压缩编码 |
cpp |
简单 |
⚠️, ❌, 🤔, ✅ |
20/03/28 |
Trie树 |
A0832 |
翻转图像 |
cpp |
简单 |
✅ |
21/02/24 |
|
A0876 |
链表的中间结点 |
cpp |
简单 |
✅ |
20/03/23 |
快慢指针 |
A0887 |
鸡蛋掉落 |
cpp |
困难 |
🚧, ⚠️, 🤔, ✅ |
20/04/11 |
|
A0892 |
三维形体的表面积 |
cpp |
简单 |
🤔, ⭐️, ✅ |
20/03/25 |
题解 |
A0896 |
单调数列 |
cpp |
简单 |
✅ |
21/02/28 |
|
A0912 |
排序数组 |
cpp |
中等 |
⭐️, ✅ |
20/03/31 |
|
A0914 |
卡牌分组 |
cpp |
简单 |
✅ |
20/03/27 |
|
A0945 |
使数组唯一的最小增量 |
cpp |
中等 |
✅ |
20/03/22 |
|
A0977 |
有序数组的平方 |
cpp |
简单 |
|
20/02/22 |
|
A0983 |
最低票价 |
cpp |
中等 |
⚠️, 🚧, 🤔, ✅ |
20/05/06 |
动态规划 |
A0994 |
腐烂的橘子 |
cpp |
简单 |
⚠️, 🤔, ✅ |
20/03/04 |
BFS, 官方题解 |
A0999 |
车的可用捕获量 |
cpp |
简单 |
✅ |
20/03/26 |
|
A1013 |
将数组分成和相等的三个部分 |
cpp |
简单 |
🤔, ✅ |
20/03/11 |
|
A1071 |
字符串的最大公因子 |
cpp |
简单 |
🤔, ✅ |
20/03/12 |
GCD |
A1095 |
山脉数组中查找目标值 |
cpp |
困难 |
🚧, ⚠️, 🤔, ✅ |
20/04/29 |
|
A1103 |
分糖果 II |
cpp |
简单 |
✅ |
20/03/05 |
|
A1111 |
有效括号的嵌套深度 |
cpp |
中等 |
✅ |
20/04/01 |
模拟栈 |
A1160 |
拼写单词 |
cpp |
简单 |
✅ |
20/03/17 |
|
A1162 |
地图分析 |
cpp |
中等 |
✅ |
20/03/29 |
多源BFS |
A1248 |
统计「优美子数组」 |
cpp |
中等 |
❌, 🤔, ⚠️, ✅ |
20/04/21 |
|
A1371 |
每个元音包含偶数次的最长子字符串 |
cpp |
中等 |
🚧, ✅ |
20/05/20 |
|
面试
# |
题目 |
题解 |
难度 |
标记 |
时间 |
笔记 |
B0003 |
数组中重复的数字 |
cpp |
简单 |
🗡 |
20/03/10 |
|
B0004 |
二维数组中的查找 |
cpp |
简单 |
🤔, ⭐️, 🗡 |
20/03/10 |
|
B0005 |
替换空格 |
cpp |
简单 |
🤔 |
20/03/10 |
string.replace |
B0006 |
从尾到头打印链表 |
cpp |
简单 |
⭐️, 🗡 |
20/03/13 |
多方法求解 |
B0007 |
重建二叉树 |
cpp |
中等 |
🚧, 🗡 |
|
二叉树 |
B0009 |
用两个栈实现队列 |
cpp |
简单 |
🗡 |
20/03/13 |
|
B0010.1 |
I. 斐波那契数列 |
cpp |
简单 |
🗡 |
20/03/13 |
|
B0010.2 |
II. 青蛙跳台阶问题 |
cpp |
简单 |
🗡 |
20/03/14 |
|
B0011 |
旋转数组的最小数字 |
cpp |
简单 |
🗡, 🤔, ⭐️ |
20/03/14 |
二分 |
B0013 |
机器人的运动范围 |
cpp |
中等 |
❌, 🚧, ⚠️, 🤔, ✅ |
20/04/08 |
BFS |
B0015 |
二进制中1的个数 |
cpp |
简单 |
🗡 |
20/03/24 |
位运算 |
B0017 |
打印从1到最大的n位数 |
cpp |
简单 |
🗡 |
20/03/24 |
|
B0021 |
调整数组顺序使奇数位于偶数前面 |
cpp |
简单 |
🗡 |
20/03/28 |
|
B0022 |
链表中倒数第k个节点 |
cpp |
简单 |
🗡 |
20/03/29 |
快慢指针 |
B0024 |
反转链表 |
cpp |
简单 |
⭐️, 🗡 |
20/03/29 |
|
B0025 |
合并两个有序链表 |
cpp |
简单 |
🗡 |
20/03/24 |
|
B0030 |
包含min函数的栈 |
cpp |
简单 |
🗡 |
20/03/29 |
辅助栈 |
B0039 |
数组中出现次数超过一半的数字 |
cpp |
简单 |
🗡 |
20/03/29 |
Boyer-Moore投票法 |
B0040 |
最小的k个数 |
cpp |
简单 |
⚠️, 🤔, ✅, 🗡 |
20/03/20 |
排序、堆排序、快排** |
B0049 |
丑数 |
cpp |
中等 |
⚠️, 🤔, 🗡 |
20/03/22 |
动态规划 |
B0051 |
数组中的逆序对 |
cpp |
困难 |
❌, 🚧, ⚠️, 🤔, ✅ |
20/04/22 |
归并** |
B0057 |
II. 和为s的连续正数序列 |
cpp |
简单 |
❌, 🤔, ✅ |
20/03/06 |
双指针 |
B0059 |
II. 队列的最大值 |
cpp |
中等 |
🤔, ✅ |
20/03/07 |
辅助双端队列 |
B0062 |
圆圈中最后剩下的数字 |
cpp |
简单 |
⚠️, 🤔, ✅ |
20/03/30 |
约瑟夫环 |
B01.06 |
字符串压缩 |
cpp |
简单 |
✅ |
20/03/16 |
|
B01.07 |
旋转矩阵 |
cpp |
中等 |
✅ |
20/04/07 |
|
B08.11 |
硬币 |
cpp |
中等 |
❌, 🚧, ⚠️, 🤔, ✅ |
20/04/22 |
动态规划/数学 |
B10.01 |
合并排序的数组 |
cpp |
简单 |
✅ |
20/03/03 |
双指针(从后向前) |
B16.03 |
交点 |
cpp |
困难 |
🚧, ⚠️, 🤔, ✅ |
20/04/12 |
|
B17.16 |
按摩师 |
cpp |
简单 |
🤔, ✅ |
20/03/24 |
动态规划 |
B56.01 |
数组中数字出现的次数 |
cpp |
中等 |
✅ |
20/04/28 |
位运算 |
周赛
经历
说明
上述列表中的时间为首次在力扣提交并通过的日期,代码中的Date表示初次尝试解题的时间。对于一些标记(比如“✅”)来说,标记获取的日期可能和列表中时间不一致。针对这些不一致的情况,这些标记的具体获取时间会在源代码中标识
Copyright 2020 Modnar.