全部标签
数据结构
数组
矩阵
链表
双向链表
栈
单调栈
队列
单调队列
堆(优先队列)
哈希表
字符串
字符串匹配
树
二叉树
二叉搜索树
最小生成树
图
有序集合
拓扑排序
最短路
强连通分量
欧拉回路
双连通分量
并查集
字典树
线段树
树状数组
后缀数组
算法
枚举
递归
分治
回溯
贪心
动态规划
排序
桶排序
计数排序
基数排序
归并排序
快速选择
二分查找
记忆化搜索
深度优先搜索
广度优先搜索
双指针 位运算
前缀和
计数
滑动窗口
状态压缩
哈希函数
滚动哈希
扫描线
其他
数学
数论
几何
博弈
模拟
组合数学
随机化
概率与统计
水塘抽样
拒绝采样
数据库
设计
数据流
脑筋急转弯
交互
迭代器
多线程
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
5 | 最长回文子串 | [✓] | 双指针 字符串 动态规划 |
Medium |
11 | 盛最多水的容器 | [✓] | 贪心 数组 双指针 |
Medium |
15 | 三数之和 | [✓] | 数组 双指针 排序 |
Medium |
16 | 最接近的三数之和 | [✓] | 数组 双指针 排序 |
Medium |
18 | 四数之和 | [✓] | 数组 双指针 排序 |
Medium |
19 | 删除链表的倒数第 N 个结点 | [✓] | 链表 双指针 |
Medium |
26 | 删除有序数组中的重复项 | [✓] | 数组 双指针 |
Easy |
27 | 移除元素 | [✓] | 数组 双指针 |
Easy |
28 | 找出字符串中第一个匹配项的下标 | [✓] | 双指针 字符串 字符串匹配 |
Easy |
31 | 下一个排列 | [✓] | 数组 双指针 |
Medium |
42 | 接雨水 | [✓] | 栈 数组 双指针 2+ |
Hard |
61 | 旋转链表 | [✓] | 链表 双指针 |
Medium |
75 | 颜色分类 | [✓] | 数组 双指针 排序 |
Medium |
80 | 删除有序数组中的重复项 II | [✓] | 数组 双指针 |
Medium |
82 | 删除排序链表中的重复元素 II | [✓] | 链表 双指针 |
Medium |
86 | 分隔链表 | [✓] | 链表 双指针 |
Medium |
88 | 合并两个有序数组 | [✓] | 数组 双指针 排序 |
Easy |
125 | 验证回文串 | [✓] | 双指针 字符串 |
Easy |
141 | 环形链表 | [✓] | 哈希表 链表 双指针 |
Easy |
142 | 环形链表 II | [✓] | 哈希表 链表 双指针 |
Medium |
143 | 重排链表 | [✓] | 栈 递归 链表 1+ |
Medium |
148 | 排序链表 | [✓] | 链表 双指针 分治 2+ |
Medium |
151 | 反转字符串中的单词 | [✓] | 双指针 字符串 |
Medium |
160 | 相交链表 | [✓] | 哈希表 链表 双指针 |
Easy |
161 | 相隔为 1 的编辑距离 🔒 | 双指针 字符串 |
Medium | |
165 | 比较版本号 | 双指针 字符串 |
Medium | |
167 | 两数之和 II - 输入有序数组 | [✓] | 数组 双指针 二分查找 |
Medium |
170 | 两数之和 III - 数据结构设计 🔒 | 设计 数组 哈希表 2+ |
Easy | |
186 | 反转字符串中的单词 II 🔒 | 双指针 字符串 |
Medium | |
189 | 轮转数组 | [✓] | 数组 数学 双指针 |
Medium |
202 | 快乐数 | [✓] | 哈希表 数学 双指针 |
Easy |
234 | 回文链表 | [✓] | 栈 递归 链表 1+ |
Easy |
244 | 最短单词距离 II 🔒 | 设计 数组 哈希表 2+ |
Medium | |
246 | 中心对称数 🔒 | 哈希表 双指针 字符串 |
Easy | |
251 | 展开二维向量 🔒 | 设计 数组 双指针 1+ |
Medium | |
253 | 会议室 II 🔒 | 贪心 数组 双指针 3+ |
Medium | |
259 | 较小的三数之和 🔒 | [✓] | 数组 双指针 二分查找 1+ |
Medium |
272 | 最接近的二叉搜索树值 II 🔒 | 栈 树 深度优先搜索 4+ |
Hard | |
277 | 搜寻名人 🔒 | 图 双指针 交互 |
Medium | |
283 | 移动零 | [✓] | 数组 双指针 |
Easy |
287 | 寻找重复数 | [✓] | 位运算 数组 双指针 1+ |
Medium |
295 | 数据流的中位数 | [✓] | 设计 双指针 数据流 2+ |
Hard |
321 | 拼接最大数 | 栈 贪心 数组 2+ |
Hard | |
344 | 反转字符串 | [✓] | 双指针 字符串 |
Easy |
345 | 反转字符串中的元音字母 | [✓] | 双指针 字符串 |
Easy |
349 | 两个数组的交集 | 数组 哈希表 双指针 2+ |
Easy | |
350 | 两个数组的交集 II | 数组 哈希表 双指针 2+ |
Easy | |
360 | 有序转化数组 🔒 | 数组 数学 双指针 1+ |
Medium | |
392 | 判断子序列 | [✓] | 双指针 字符串 动态规划 |
Easy |
408 | 有效单词缩写 🔒 | 双指针 字符串 |
Easy | |
443 | 压缩字符串 | [✓] | 双指针 字符串 |
Medium |
455 | 分发饼干 | 贪心 数组 双指针 1+ |
Easy | |
457 | 环形数组是否存在循环 | 数组 哈希表 双指针 |
Medium | |
475 | 供暖器 | 数组 双指针 二分查找 1+ |
Medium | |
481 | 神奇字符串 | 双指针 字符串 |
Medium | |
522 | 最长特殊序列 II | 数组 哈希表 双指针 2+ |
Medium | |
524 | 通过删除字母匹配到字典里最长单词 | 数组 双指针 字符串 1+ |
Medium | |
532 | 数组中的 k-diff 数对 | 数组 哈希表 双指针 2+ |
Medium | |
541 | 反转字符串 II | 双指针 字符串 |
Easy | |
556 | 下一个更大元素 III | 数学 双指针 字符串 |
Medium | |
557 | 反转字符串中的单词 III | [✓] | 双指针 字符串 |
Easy |
567 | 字符串的排列 | [✓] | 哈希表 双指针 字符串 1+ |
Medium |
581 | 最短无序连续子数组 | 栈 贪心 数组 3+ |
Medium | |
611 | 有效三角形的个数 | [✓] | 贪心 数组 双指针 2+ |
Medium |
633 | 平方数之和 | 数学 双指针 二分查找 |
Medium | |
647 | 回文子串 | 双指针 字符串 动态规划 |
Medium | |
653 | 两数之和 IV - 输入二叉搜索树 | 树 深度优先搜索 广度优先搜索 4+ |
Easy | |
658 | 找到 K 个最接近的元素 | 数组 双指针 二分查找 3+ |
Medium | |
680 | 验证回文串 II | 贪心 双指针 字符串 |
Easy | |
696 | 计数二进制子串 | 双指针 字符串 |
Easy | |
719 | 找出第 K 小的数对距离 | 数组 双指针 二分查找 1+ |
Hard | |
723 | 粉碎糖果 🔒 | 数组 双指针 矩阵 1+ |
Medium | |
763 | 划分字母区间 | [✓] | 贪心 哈希表 双指针 1+ |
Medium |
777 | 在LR字符串中交换相邻字符 | 双指针 字符串 |
Medium | |
786 | 第 K 个最小的质数分数 | 数组 双指针 二分查找 2+ |
Medium | |
795 | 区间子数组个数 | 数组 双指针 |
Medium | |
809 | 情感丰富的文字 | 数组 双指针 字符串 |
Medium | |
821 | 字符的最短距离 | 数组 双指针 字符串 |
Easy | |
825 | 适龄的朋友 | 数组 双指针 二分查找 1+ |
Medium | |
826 | 安排工作以达到最大收益 | 贪心 数组 双指针 2+ |
Medium | |
832 | 翻转图像 | 位运算 数组 双指针 2+ |
Easy | |
838 | 推多米诺 | 双指针 字符串 动态规划 |
Medium | |
844 | 比较含退格的字符串 | [✓] | 栈 双指针 字符串 1+ |
Easy |
845 | 数组中的最长山脉 | [✓] | 数组 双指针 动态规划 1+ |
Medium |
870 | 优势洗牌 | 贪心 数组 双指针 1+ |
Medium | |
876 | 链表的中间结点 | [✓] | 链表 双指针 |
Easy |
881 | 救生艇 | 贪心 数组 双指针 1+ |
Medium | |
905 | 按奇偶排序数组 | 数组 双指针 排序 |
Easy | |
917 | 仅仅反转字母 | 双指针 字符串 |
Easy | |
922 | 按奇偶排序数组 II | 数组 双指针 排序 |
Easy | |
923 | 三数之和的多种可能 | 数组 哈希表 双指针 2+ |
Medium | |
925 | 长按键入 | 双指针 字符串 |
Easy | |
942 | 增减字符串匹配 | 贪心 数组 双指针 1+ |
Easy | |
948 | 令牌放置 | 贪心 数组 双指针 1+ |
Medium | |
969 | 煎饼排序 | 贪心 数组 双指针 1+ |
Medium | |
977 | 有序数组的平方 | 数组 双指针 排序 |
Easy | |
986 | 区间列表的交集 | [✓] | 数组 双指针 |
Medium |
1023 | 驼峰式匹配 | 字典树 数组 双指针 2+ |
Medium | |
1040 | 移动石子直到连续 II | 数组 数学 双指针 1+ |
Medium | |
1048 | 最长字符串链 | 数组 哈希表 双指针 3+ |
Medium | |
1055 | 形成字符串的最短路径 🔒 | 贪心 双指针 字符串 1+ |
Medium | |
1089 | 复写零 | 数组 双指针 |
Easy | |
1099 | 小于 K 的两数之和 🔒 | 数组 双指针 二分查找 1+ |
Easy | |
1147 | 段式回文 | 贪心 双指针 字符串 3+ |
Hard | |
1163 | 按字典序排在最后的子串 | 双指针 字符串 |
Hard | |
1214 | 查找两棵二叉搜索树之和 🔒 | 栈 树 深度优先搜索 4+ |
Medium | |
1229 | 安排会议日程 🔒 | 数组 双指针 排序 |
Medium | |
1237 | 找出给定方程的正整数解 | 数学 双指针 二分查找 1+ |
Medium | |
1265 | 逆序打印不可变链表 🔒 | 栈 递归 链表 1+ |
Medium | |
1332 | 删除回文子序列 | 双指针 字符串 |
Easy | |
1346 | 检查整数及其两倍数是否存在 | 数组 哈希表 双指针 2+ |
Easy | |
1385 | 两个数组间的距离值 | 数组 双指针 二分查找 1+ |
Easy | |
1455 | 检查单词是否为句中其他单词的前缀 | 双指针 字符串 字符串匹配 |
Easy | |
1471 | 数组中的 k 个最强值 | 数组 双指针 排序 |
Medium | |
1498 | 满足条件的子序列数目 | 数组 双指针 二分查找 1+ |
Medium | |
1508 | 子数组和排序后的区间和 | 数组 双指针 二分查找 1+ |
Medium | |
1537 | 最大得分 | 贪心 数组 双指针 1+ |
Hard | |
1570 | 两个稀疏向量的点积 🔒 | 设计 数组 哈希表 1+ |
Medium | |
1574 | 删除最短的子数组使剩余数组有序 | 栈 数组 双指针 2+ |
Medium | |
1577 | 数的平方等于两数乘积的方法数 | 数组 哈希表 数学 1+ |
Medium | |
1616 | 分割两个字符串得到回文串 | 双指针 字符串 |
Medium | |
1634 | 求两个多项式链表的和 🔒 | 链表 数学 双指针 |
Medium | |
1650 | 二叉树的最近公共祖先 III 🔒 | 树 哈希表 双指针 1+ |
Medium | |
1679 | K 和数对的最大数目 | [✓] | 数组 哈希表 双指针 1+ |
Medium |
1697 | 检查边长度限制的路径是否存在 | 并查集 图 数组 2+ |
Hard | |
1712 | 将数组分成三个子数组的方案数 | 数组 双指针 二分查找 1+ |
Medium | |
1721 | 交换链表中的节点 | 链表 双指针 |
Medium | |
1750 | 删除字符串两端相同字符后的最短长度 | 双指针 字符串 |
Medium | |
1754 | 构造字典序最大的合并字符串 | 贪心 双指针 字符串 |
Medium | |
1755 | 最接近目标值的子序列和 | 位运算 数组 双指针 2+ |
Hard | |
1764 | 通过连接另一个数组的子数组得到一个数组 | 贪心 数组 双指针 1+ |
Medium | |
1768 | 交替合并字符串 | [✓] | 双指针 字符串 |
Easy |
1782 | 统计点对的数目 | 图 数组 双指针 2+ |
Hard | |
1793 | 好子数组的最大分数 | 栈 数组 双指针 2+ |
Hard | |
1813 | 句子相似性 III | [✓] | 数组 双指针 字符串 |
Medium |
1826 | 有缺陷的传感器 🔒 | 数组 双指针 |
Easy | |
1842 | 下个由相同数字构成的回文串 🔒 | 双指针 字符串 |
Hard | |
1850 | 邻位交换的最小次数 | 贪心 双指针 字符串 |
Medium | |
1855 | 下标对中的最大距离 | 数组 双指针 二分查找 |
Medium | |
1861 | 旋转盒子 | 数组 双指针 矩阵 |
Medium | |
1868 | 两个行程编码数组的积 🔒 | 数组 双指针 |
Medium | |
1877 | 数组中最大数对和的最小值 | 贪心 数组 双指针 1+ |
Medium | |
1885 | 统计数对 🔒 | 数组 双指针 二分查找 1+ |
Medium | |
1898 | 可移除字符的最大数目 | 数组 双指针 字符串 1+ |
Medium | |
1961 | 检查字符串是否为数组前缀 | 数组 双指针 字符串 |
Easy | |
1963 | 使字符串平衡的最小交换次数 | [✓] | 栈 贪心 双指针 1+ |
Medium |
2000 | 反转单词前缀 | 栈 双指针 字符串 |
Easy | |
2035 | 将数组分成两个数组并最小化数组和的差 | 位运算 数组 双指针 4+ |
Hard | |
2046 | 给按照绝对值排序的链表排序 🔒 | 链表 双指针 排序 |
Medium | |
2095 | 删除链表的中间节点 | 链表 双指针 |
Medium | |
2105 | 给植物浇水 II | 数组 双指针 模拟 |
Medium | |
2108 | 找出数组中的第一个回文字符串 | 数组 双指针 字符串 |
Easy | |
2109 | 向字符串添加空格 | 数组 双指针 字符串 1+ |
Medium | |
2122 | 还原原数组 | 数组 哈希表 双指针 2+ |
Hard | |
2130 | 链表最大孪生和 | 栈 链表 双指针 |
Medium | |
2149 | 按符号重排数组 | 数组 双指针 模拟 |
Medium | |
2161 | 根据给定数字划分数组 | 数组 双指针 模拟 |
Medium | |
2193 | 得到回文串的最少操作次数 | 贪心 树状数组 双指针 1+ |
Hard | |
2200 | 找出数组中的所有 K 近邻下标 | 数组 双指针 |
Easy | |
2234 | 花园的最大总美丽值 | 贪心 数组 双指针 2+ |
Hard | |
2300 | 咒语和药水的成功对数 | 数组 双指针 二分查找 1+ |
Medium | |
2330 | 验证回文串 IV 🔒 | 双指针 字符串 |
Medium | |
2332 | 坐上公交的最晚时间 | 数组 双指针 二分查找 1+ |
Medium | |
2337 | 移动片段得到字符串 | 双指针 字符串 |
Medium | |
2367 | 等差三元组的数目 | 数组 哈希表 双指针 1+ |
Easy | |
2396 | 严格回文的数字 | 脑筋急转弯 数学 双指针 |
Medium | |
2406 | 将区间分为最少组数 | [✓] | 贪心 数组 双指针 3+ |
Medium |
2410 | 运动员和训练师的最大匹配数 | 贪心 数组 双指针 1+ |
Medium | |
2422 | 使用合并操作将数组转换为回文序列 🔒 | 贪心 数组 双指针 |
Medium | |
2441 | 与对应负数同时存在的最大正整数 | 数组 哈希表 双指针 1+ |
Easy | |
2460 | 对数组执行操作 | 数组 双指针 模拟 |
Easy | |
2462 | 雇佣 K 位工人的总代价 | 数组 双指针 模拟 1+ |
Medium | |
2465 | 不同的平均值数目 | 数组 哈希表 双指针 1+ |
Easy | |
2472 | 不重叠回文子字符串的最大数目 | 贪心 双指针 字符串 1+ |
Hard | |
2486 | 追加字符以获得子序列 | 贪心 双指针 字符串 |
Medium | |
2491 | 划分技能点相等的团队 | [✓] | 数组 哈希表 双指针 1+ |
Medium |
2503 | 矩阵查询可获得的最大分数 | 广度优先搜索 并查集 数组 4+ |
Hard | |
2511 | 最多可以摧毁的敌人城堡数目 | 数组 双指针 |
Easy | |
2540 | 最小公共值 | 数组 哈希表 双指针 1+ |
Easy | |
2562 | 找出数组的串联值 | 数组 双指针 模拟 |
Easy | |
2563 | 统计公平数对的数目 | 数组 双指针 二分查找 1+ |
Medium | |
2565 | 最少得分子序列 | 双指针 字符串 二分查找 |
Hard | |
2570 | 合并两个二维数组 - 求和法 | 数组 哈希表 双指针 |
Easy | |
2576 | 求出最多标记下标 | 贪心 数组 双指针 2+ |
Medium | |
2592 | 最大化数组的伟大值 | 贪心 数组 双指针 1+ |
Medium | |
2604 | 吃掉所有谷子的最短时间 🔒 | 数组 双指针 二分查找 1+ |
Hard | |
2674 | 拆分循环链表 🔒 | 链表 双指针 |
Medium | |
2697 | 字典序最小回文串 | 贪心 双指针 字符串 |
Easy | |
2824 | 统计和小于目标的下标对数目 | 数组 双指针 二分查找 1+ |
Easy | |
2825 | 循环增长使字符串子序列等于另一个字符串 | 双指针 字符串 |
Medium | |
2838 | 英雄可以获得的最大金币数 🔒 | 数组 双指针 二分查找 2+ |
Medium | |
2856 | 删除数对后的最小数组长度 | 贪心 数组 哈希表 3+ |
Medium | |
2868 | 单词游戏 🔒 | 贪心 数组 数学 3+ |
Hard | |
2903 | 找出满足差值条件的下标 I | 数组 双指针 |
Easy | |
2905 | 找出满足差值条件的下标 II | 数组 双指针 |
Medium | |
2911 | 得到 K 个半回文串的最少修改次数 | 双指针 字符串 动态规划 |
Hard | |
2938 | 区分黑球与白球 | [✓] | 贪心 双指针 字符串 |
Medium |
2970 | 统计移除递增子数组的数目 I | 数组 双指针 二分查找 1+ |
Easy | |
2972 | 统计移除递增子数组的数目 II | 数组 双指针 二分查找 |
Hard | |
3006 | 找出数组中的美丽下标 I | 双指针 字符串 二分查找 3+ |
Medium | |
3008 | 找出数组中的美丽下标 II | 双指针 字符串 二分查找 3+ |
Hard | |
3132 | 找出与数组相加的整数 II | 数组 双指针 枚举 1+ |
Medium | |
3186 | 施咒的最大总伤害 | 数组 哈希表 双指针 4+ |
Medium | |
3194 | 最小元素和最大元素的最小平均值 | 数组 双指针 排序 |
Easy | |
3239 | 最少翻转次数使二进制矩阵回文 I | 数组 双指针 矩阵 |
Medium | |
3240 | 最少翻转次数使二进制矩阵回文 II | 数组 双指针 矩阵 |
Medium | |
3284 | 连续子数组的和 🔒 | 数组 双指针 动态规划 |
Medium | |
3302 | 字典序最小的合法序列 | 贪心 双指针 字符串 1+ |
Medium | |
3316 | 从原字符串里进行删除操作的最多次数 | 数组 哈希表 双指针 2+ |
Medium | |
LCP 18 | 早餐组合 | 数组 双指针 二分查找 1+ |
Easy | |
LCP 28 | 采购方案 | 数组 双指针 二分查找 1+ |
Easy | |
剑指 Offer 21 | 调整数组顺序使奇数位于偶数前面 | [✓] | 数组 双指针 排序 |
Easy |
剑指 Offer 22 | 链表中倒数第k个节点 | [✓] | 链表 双指针 |
Easy |
剑指 Offer 41 | 数据流中的中位数 | [✓] | 设计 双指针 数据流 2+ |
Hard |
剑指 Offer 52 | 两个链表的第一个公共节点 | [✓] | 哈希表 链表 双指针 |
Easy |
剑指 Offer 57 | 和为s的两个数字 | [✓] | 数组 双指针 二分查找 |
Easy |
剑指 Offer 57-II | 和为s的连续正数序列 | [✓] | 数学 双指针 枚举 |
Easy |
剑指 Offer 58 | 翻转单词顺序 | [✓] | 双指针 字符串 |
Easy |
剑指 Offer 58-II | 左旋转字符串 | [✓] | 数学 双指针 字符串 |
Easy |
剑指 Offer 6 | 从尾到头打印链表 | [✓] | 栈 递归 链表 1+ |
Easy |
剑指 Offer II 14 | 字符串中的变位词 | [✓] | 哈希表 双指针 字符串 1+ |
Medium |
剑指 Offer II 18 | 有效的回文 | [✓] | 双指针 字符串 |
Easy |
剑指 Offer II 19 | 最多删除一个字符得到回文 | 贪心 双指针 字符串 |
Easy | |
剑指 Offer II 21 | 删除链表的倒数第 n 个结点 | [✓] | 链表 双指针 |
Medium |
剑指 Offer II 22 | 链表中环的入口节点 | [✓] | 哈希表 链表 双指针 |
Medium |
剑指 Offer II 23 | 两个链表的第一个重合节点 | [✓] | 哈希表 链表 双指针 |
Easy |
剑指 Offer II 26 | 重排链表 | [✓] | 栈 递归 链表 1+ |
Medium |
剑指 Offer II 27 | 回文链表 | [✓] | 栈 递归 链表 1+ |
Easy |
剑指 Offer II 6 | 排序数组中两个数字之和 | [✓] | 数组 双指针 二分查找 |
Easy |
剑指 Offer II 7 | 数组中和为 0 的三个数 | [✓] | 数组 双指针 排序 |
Medium |
剑指 Offer II 77 | 链表排序 | [✓] | 链表 双指针 分治 2+ |
Medium |
面试题 01.05 | 一次编辑 | 双指针 字符串 |
Medium | |
面试题 01.06 | 字符串压缩 | 双指针 字符串 |
Easy | |
面试题 02.01 | 移除重复节点 | 哈希表 链表 双指针 |
Easy | |
面试题 02.02 | 返回倒数第 k 个节点 | 链表 双指针 |
Easy | |
面试题 02.04 | 分割链表 | 链表 双指针 |
Medium | |
面试题 02.06 | 回文链表 | 栈 递归 链表 1+ |
Easy | |
面试题 02.07 | 链表相交 | 哈希表 链表 双指针 |
Easy | |
面试题 02.08 | 环路检测 | 哈希表 链表 双指针 |
Medium | |
面试题 10.01 | 合并排序的数组 | 数组 双指针 排序 |
Easy | |
面试题 16.06 | 最小差 | 数组 双指针 二分查找 1+ |
Medium | |
面试题 16.16 | 部分排序 | 栈 贪心 数组 3+ |
Medium | |
面试题 16.24 | 数对和 | 数组 哈希表 双指针 2+ |
Medium | |
面试题 17.20 | 连续中值 | 设计 双指针 数据流 2+ |
Hard | |
面试题 17.21 | 直方图的水量 | 栈 数组 双指针 2+ |
Hard |