05. LeetCode 题解(按分类排序,推荐 ★★★)
大约 78 分钟
LeetCode 题解(按分类排序)
01. 数组
数组基础题目
数组操作题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0189 | 轮转数组 | Python | 数组、数学、双指针 | 中等 |
0066 | 加一 | Python | 数组、数学 | 简单 |
0724 | 寻找数组的中心下标 | Python | 数组、前缀和 | 简单 |
0485 | 最大连续 1 的个数 | Python | 数组 | 简单 |
0238 | 除自身以外数组的乘积 | Python | 数组、前缀和 | 中等 |
二维数组题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0498 | 对角线遍历 | Python | 数组、矩阵、模拟 | 中等 |
0048 | 旋转图像 | Python | 数组、数学、矩阵 | 中等 |
0073 | 矩阵置零 | Python | 数组、哈希表、矩阵 | 中等 |
0054 | 螺旋矩阵 | Python | 数组、矩阵、模拟 | 中等 |
0059 | 螺旋矩阵 II | Python | 数组、矩阵、模拟 | 中等 |
0289 | 生命游戏 | Python | 数组、矩阵、模拟 | 中等 |
排序算法题目
冒泡排序题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
剑指 Offer 45 | 把数组排成最小的数 | Python | 贪心、字符串、排序 | 中等 |
0283 | 移动零 | Python | 数组、双指针 | 简单 |
选择排序题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0215 | 数组中的第K个最大元素 | Python | 数组、分治、快速选择、排序、堆(优先队列) | 中等 |
插入排序题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0075 | 颜色分类 | Python | 数组、双指针、排序 | 中等 |
希尔排序题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0912 | 排序数组 | Python | 数组、分治、桶排序、计数排序、基数排序、排序、堆(优先队列)、归并排序 | 中等 |
0506 | 相对名次 | Python | 数组、排序、堆(优先队列) | 简单 |
归并排序题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0912 | 排序数组 | Python | 数组、分治、桶排序、计数排序、基数排序、排序、堆(优先队列)、归并排序 | 中等 |
0088 | 合并两个有序数组 | Python | 数组、双指针、排序 | 简单 |
剑指 Offer 51 | 数组中的逆序对 | Python | 树状数组、线段树、数组、二分查找、分治、有序集合、归并排序 | 困难 |
0315 | 计算右侧小于当前元素的个数 | Python | 树状数组、线段树、数组、二分查找、分治、有序集合、归并排序 | 困难 |
快速排序题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0912 | 排序数组 | Python | 数组、分治、桶排序、计数排序、基数排序、排序、堆(优先队列)、归并排序 | 中等 |
0169 | 多数元素 | Python | 数组、哈希表、分治、计数、排序 | 简单 |
堆排序题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0912 | 排序数组 | Python | 数组、分治、桶排序、计数排序、基数排序、排序、堆(优先队列)、归并排序 | 中等 |
0215 | 数组中的第K个最大元素 | Python | 数组、分治、快速选择、排序、堆(优先队列) | 中等 |
剑指 Offer 40 | 最小的k个数 | Python | 数组、分治、快速选择、排序、堆(优先队列) | 简单 |
计数排序题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0912 | 排序数组 | Python | 数组、分治、桶排序、计数排序、基数排序、排序、堆(优先队列)、归并排序 | 中等 |
1122 | 数组的相对排序 | Python | 数组、哈希表、计数排序、排序 | 简单 |
桶排序题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0912 | 排序数组 | Python | 数组、分治、桶排序、计数排序、基数排序、排序、堆(优先队列)、归并排序 | 中等 |
0220 | 存在重复元素 III | Python | 数组、桶排序、有序集合、排序、滑动窗口 | 困难 |
0164 | 最大间距 | Python | 数组、桶排序、基数排序、排序 | 困难 |
基数排序题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0164 | 最大间距 | Python | 数组、桶排序、基数排序、排序 | 困难 |
0561 | 数组拆分 | Python | 贪心、数组、计数排序、排序 | 简单 |
其他排序题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0217 | 存在重复元素 | Python | 数组、哈希表、排序 | 简单 |
0136 | 只出现一次的数字 | Python | 位运算、数组 | 简单 |
0056 | 合并区间 | Python | 数组、排序 | 中等 |
0179 | 最大数 | Python | 贪心、数组、字符串、排序 | 中等 |
0384 | 打乱数组 | Python | 数组、数学、随机化 | 中等 |
剑指 Offer 45 | 把数组排成最小的数 | Python | 贪心、字符串、排序 | 中等 |
二分查找题目
二分下标题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0704 | 二分查找 | Python | 数组、二分查找 | 简单 |
0374 | 猜数字大小 | Python | 二分查找、交互 | 简单 |
0035 | 搜索插入位置 | Python | 数组、二分查找 | 简单 |
0034 | 在排序数组中查找元素的第一个和最后一个位置 | Python | 数组、二分查找 | 中等 |
0167 | 两数之和 II - 输入有序数组 | Python | 数组、双指针、二分查找 | 中等 |
0153 | 寻找旋转排序数组中的最小值 | Python | 数组、二分查找 | 中等 |
0154 | 寻找旋转排序数组中的最小值 II | Python | 数组、二分查找 | 困难 |
0033 | 搜索旋转排序数组 | Python | 数组、二分查找 | 中等 |
0081 | 搜索旋转排序数组 II | Python | 数组、二分查找 | 中等 |
0278 | 第一个错误的版本 | Python | 二分查找、交互 | 简单 |
0162 | 寻找峰值 | Python | 数组、二分查找 | 中等 |
0852 | 山脉数组的峰顶索引 | Python | 数组、二分查找 | 中等 |
1095 | 山脉数组中查找目标值 | Python | 数组、二分查找、交互 | 困难 |
0744 | 寻找比目标字母大的最小字母 | Python | 数组、二分查找 | 简单 |
0004 | 寻找两个正序数组的中位数 | Python | 数组、二分查找、分治 | 困难 |
0074 | 搜索二维矩阵 | Python | 数组、二分查找、矩阵 | 中等 |
0240 | 搜索二维矩阵 II | Python | 数组、二分查找、分治、矩阵 | 中等 |
二分答案题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0069 | x 的平方根 | Python | 数学、二分查找 | 简单 |
0287 | 寻找重复数 | Python | 位运算、数组、双指针、二分查找 | 中等 |
0050 | Pow(x, n) | Python | 递归、数学 | 中等 |
0367 | 有效的完全平方数 | Python | 数学、二分查找 | 简单 |
1300 | 转变数组后最接近目标值的数组和 | Python | 数组、二分查找、排序 | 中等 |
0400 | 第 N 位数字 | Python | 数学、二分查找 | 中等 |
复杂的二分查找问题
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0875 | 爱吃香蕉的珂珂 | Python | 数组、二分查找 | 中等 |
0410 | 分割数组的最大值 | Python | 贪心、数组、二分查找、动态规划、前缀和 | 困难 |
0209 | 长度最小的子数组 | Python | 数组、二分查找、前缀和、滑动窗口 | 中等 |
0658 | 找到 K 个最接近的元素 | Python | 数组、双指针、二分查找、排序、滑动窗口、堆(优先队列) | 中等 |
0270 | 最接近的二叉搜索树值 | Python | 树、深度优先搜索、二叉搜索树、二分查找、二叉树 | 简单 |
0702 | 搜索长度未知的有序数组 | Python | 数组、二分查找、交互 | 中等 |
0349 | 两个数组的交集 | Python | 数组、哈希表、双指针、二分查找、排序 | 简单 |
0350 | 两个数组的交集 II | Python | 数组、哈希表、双指针、二分查找、排序 | 简单 |
0287 | 寻找重复数 | Python | 位运算、数组、双指针、二分查找 | 中等 |
0719 | 找出第 K 小的数对距离 | Python | 数组、双指针、二分查找、排序 | 困难 |
0259 | 较小的三数之和 | Python | 数组、双指针、二分查找、排序 | 中等 |
1011 | 在 D 天内送达包裹的能力 | Python | 数组、二分查找 | 中等 |
1482 | 制作 m 束花所需的最少天数 | Python | 数组、二分查找 | 中等 |
双指针题目
对撞指针题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0167 | 两数之和 II - 输入有序数组 | Python | 数组、双指针、二分查找 | 中等 |
0344 | 反转字符串 | Python | 双指针、字符串 | 简单 |
0345 | 反转字符串中的元音字母 | Python | 双指针、字符串 | 简单 |
0125 | 验证回文串 | Python | 双指针、字符串 | 简单 |
0011 | 盛最多水的容器 | Python | 贪心、数组、双指针 | 中等 |
0611 | 有效三角形的个数 | Python | 贪心、数组、双指针、二分查找、排序 | 中等 |
0015 | 三数之和 | Python | 数组、双指针、排序 | 中等 |
0016 | 最接近的三数之和 | Python | 数组、双指针、排序 | 中等 |
0018 | 四数之和 | Python | 数组、双指针、排序 | 中等 |
0259 | 较小的三数之和 | Python | 数组、双指针、二分查找、排序 | 中等 |
0658 | 找到 K 个最接近的元素 | Python | 数组、双指针、二分查找、排序、滑动窗口、堆(优先队列) | 中等 |
1099 | 小于 K 的两数之和 | Python | 数组、双指针、二分查找、排序 | 简单 |
0075 | 颜色分类 | Python | 数组、双指针、排序 | 中等 |
0360 | 有序转化数组 | Python | 数组、数学、双指针、排序 | 中等 |
0977 | 有序数组的平方 | Python | 数组、双指针、排序 | 简单 |
0881 | 救生艇 | Python | 贪心、数组、双指针、排序 | 中等 |
0042 | 接雨水 | Python | 栈、数组、双指针、动态规划、单调栈 | 困难 |
0443 | 压缩字符串 | Python | 双指针、字符串 | 中等 |
快慢指针题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0026 | 删除有序数组中的重复项 | Python | 数组、双指针 | 简单 |
0080 | 删除有序数组中的重复项 II | Python | 数组、双指针 | 中等 |
0027 | 移除元素 | Python | 数组、双指针 | 简单 |
0283 | 移动零 | Python | 数组、双指针 | 简单 |
0845 | 数组中的最长山脉 | Python | 数组、双指针、动态规划、枚举 | 中等 |
0088 | 合并两个有序数组 | Python | 数组、双指针、排序 | 简单 |
0719 | 找出第 K 小的数对距离 | Python | 数组、双指针、二分查找、排序 | 困难 |
0334 | 递增的三元子序列 | Python | 贪心、数组 | 中等 |
0978 | 最长湍流子数组 | Python | 数组、动态规划、滑动窗口 | 中等 |
剑指 Offer 21 | 调整数组顺序使奇数位于偶数前面 | Python | 数组、双指针、排序 | 简单 |
分离双指针题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0350 | 两个数组的交集 II | Python | 数组、哈希表、双指针、二分查找、排序 | 简单 |
0925 | 长按键入 | Python | 双指针、字符串 | 简单 |
0844 | 比较含退格的字符串 | Python | 栈、双指针、字符串、模拟 | 简单 |
1229 | 安排会议日程 | Python | 数组、双指针、排序 | 中等 |
0415 | 字符串相加 | Python | 数学、字符串、模拟 | 简单 |
0392 | 判断子序列 | Python | 双指针、字符串、动态规划 | 简单 |
滑动窗口题目
固定长度窗口题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
1343 | 大小为 K 且平均值大于等于阈值的子数组数目 | Python | 数组、滑动窗口 | 中等 |
0643 | 子数组最大平均数 I | Python | 数组、滑动窗口 | 简单 |
1052 | 爱生气的书店老板 | Python | 数组、滑动窗口 | 中等 |
1423 | 可获得的最大点数 | Python | 数组、前缀和、滑动窗口 | 中等 |
1456 | 定长子串中元音的最大数目 | Python | 字符串、滑动窗口 | 中等 |
0567 | 字符串的排列 | Python | 哈希表、双指针、字符串、滑动窗口 | 中等 |
1100 | 长度为 K 的无重复字符子串 | Python | 哈希表、字符串、滑动窗口 | 中等 |
1151 | 最少交换次数来组合所有的 1 | Python | 数组、滑动窗口 | 中等 |
1176 | 健身计划评估 | Python | 数组、滑动窗口 | 简单 |
0438 | 找到字符串中所有字母异位词 | Python | 哈希表、字符串、滑动窗口 | 中等 |
0995 | K 连续位的最小翻转次数 | Python | 位运算、队列、数组、前缀和、滑动窗口 | 困难 |
0683 | K 个关闭的灯泡 | Python | 树状数组、数组、有序集合、滑动窗口 | 困难 |
0220 | 存在重复元素 III | Python | 数组、桶排序、有序集合、排序、滑动窗口 | 困难 |
0239 | 滑动窗口最大值 | Python | 队列、数组、滑动窗口、单调队列、堆(优先队列) | 困难 |
0480 | 滑动窗口中位数 | Python | 数组、哈希表、滑动窗口、堆(优先队列) | 困难 |
不定长度窗口题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0674 | 最长连续递增序列 | Python | 数组 | 简单 |
0485 | 最大连续 1 的个数 | Python | 数组 | 简单 |
0487 | 最大连续1的个数 II | Python | 数组、动态规划、滑动窗口 | 中等 |
0076 | 最小覆盖子串 | Python | 哈希表、字符串、滑动窗口 | 困难 |
0718 | 最长重复子数组 | Python | 数组、二分查找、动态规划、滑动窗口、哈希函数、滚动哈希 | 中等 |
0209 | 长度最小的子数组 | Python | 数组、二分查找、前缀和、滑动窗口 | 中等 |
1004 | 最大连续1的个数 III | Python | 数组、二分查找、前缀和、滑动窗口 | 中等 |
1658 | 将 x 减到 0 的最小操作数 | Python | 数组、哈希表、二分查找、前缀和、滑动窗口 | 中等 |
0424 | 替换后的最长重复字符 | Python | 哈希表、字符串、滑动窗口 | 中等 |
0003 | 无重复字符的最长子串 | Python | 哈希表、字符串、滑动窗口 | 中等 |
1695 | 删除子数组的最大得分 | Python | 数组、哈希表、滑动窗口 | 中等 |
1208 | 尽可能使字符串相等 | Python | 字符串、二分查找、前缀和、滑动窗口 | 中等 |
1493 | 删掉一个元素以后全为 1 的最长子数组 | Python | 数组、动态规划、滑动窗口 | 中等 |
0727 | 最小窗口子序列 | Python | 字符串、动态规划、滑动窗口 | 困难 |
0159 | 至多包含两个不同字符的最长子串 | Python | 哈希表、字符串、滑动窗口 | 中等 |
0340 | 至多包含 K 个不同字符的最长子串 | Python | 哈希表、字符串、滑动窗口 | 中等 |
0795 | 区间子数组个数 | Python | 数组、双指针 | 中等 |
0992 | K 个不同整数的子数组 | Python | 数组、哈希表、计数、滑动窗口 | 困难 |
0713 | 乘积小于 K 的子数组 | Python | 数组、滑动窗口 | 中等 |
0904 | 水果成篮 | Python | 数组、哈希表、滑动窗口 | 中等 |
1358 | 包含所有三种字符的子字符串数目 | Python | 哈希表、字符串、滑动窗口 | 中等 |
0467 | 环绕字符串中唯一的子字符串 | Python | 字符串、动态规划 | 中等 |
1438 | 绝对差不超过限制的最长连续子数组 | Python | 队列、数组、有序集合、滑动窗口、单调队列、堆(优先队列) | 中等 |
02. 链表
链表经典题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0707 | 设计链表 | Python | 设计、链表 | 中等 |
0083 | 删除排序链表中的重复元素 | Python | 链表 | 简单 |
0082 | 删除排序链表中的重复元素 II | Python | 链表、双指针 | 中等 |
0206 | 反转链表 | Python | 递归、链表 | 简单 |
0092 | 反转链表 II | Python | 链表 | 中等 |
0025 | K 个一组翻转链表 | Python | 递归、链表 | 困难 |
0203 | 移除链表元素 | Python | 递归、链表 | 简单 |
0328 | 奇偶链表 | Python | 链表 | 中等 |
0234 | 回文链表 | Python | 栈、递归、链表、双指针 | 简单 |
0430 | 扁平化多级双向链表 | Python | 深度优先搜索、链表、双向链表 | 中等 |
0138 | 复制带随机指针的链表 | Python | 哈希表、链表 | 中等 |
0061 | 旋转链表 | Python | 链表、双指针 | 中等 |
链表排序题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0148 | 排序链表 | Python | 链表、双指针、分治、排序、归并排序 | 中等 |
0021 | 合并两个有序链表 | Python | 递归、链表 | 简单 |
0023 | 合并 K 个升序链表 | Python | 链表、分治、堆(优先队列)、归并排序 | 困难 |
0147 | 对链表进行插入排序 | Python | 链表、排序 | 中等 |
链表双指针题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0141 | 环形链表 | Python | 哈希表、链表、双指针 | 简单 |
0142 | 环形链表 II | Python | 哈希表、链表、双指针 | 中等 |
0160 | 相交链表 | Python | 哈希表、链表、双指针 | 简单 |
0019 | 删除链表的倒数第 N 个结点 | Python | 链表、双指针 | 中等 |
0876 | 链表的中间结点 | Python | 链表、双指针 | 简单 |
剑指 Offer 22 | 链表中倒数第k个节点 | Python | 链表、双指针 | 简单 |
0143 | 重排链表 | Python | 栈、递归、链表、双指针 | 中等 |
0002 | 两数相加 | Python | 递归、链表、数学 | 中等 |
0445 | 两数相加 II | Python | 栈、链表、数学 | 中等 |
03. 堆栈
堆栈基础题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
1047 | 删除字符串中的所有相邻重复项 | Python | 栈、字符串 | 简单 |
0155 | 最小栈 | Python | 栈、设计 | 中等 |
0020 | 有效的括号 | Python | 栈、字符串 | 简单 |
0227 | 基本计算器 II | Python | 栈、数学、字符串 | 中等 |
0739 | 每日温度 | Python | 栈、数组、单调栈 | 中等 |
0150 | 逆波兰表达式求值 | Python | 栈、数组、数学 | 中等 |
0232 | 用栈实现队列 | Python | 栈、设计、队列 | 简单 |
剑指 Offer 09 | 用两个栈实现队列 | Python | 栈、设计、队列 | 简单 |
0394 | 字符串解码 | Python | 栈、递归、字符串 | 中等 |
0032 | 最长有效括号 | Python | 栈、字符串、动态规划 | 困难 |
0946 | 验证栈序列 | Python | 栈、数组、模拟 | 中等 |
剑指 Offer 06 | 从尾到头打印链表 | Python | 栈、递归、链表、双指针 | 简单 |
0071 | 简化路径 | 栈、字符串 | 中等 |
单调栈
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0739 | 每日温度 | Python | 栈、数组、单调栈 | 中等 |
0496 | 下一个更大元素 I | Python | 栈、数组、哈希表、单调栈 | 简单 |
0503 | 下一个更大元素 II | Python | 栈、数组、单调栈 | 中等 |
0901 | 股票价格跨度 | Python | 栈、设计、数据流、单调栈 | 中等 |
0084 | 柱状图中最大的矩形 | Python | 栈、数组、单调栈 | 困难 |
0316 | 去除重复字母 | Python | 栈、贪心、字符串、单调栈 | 中等 |
0042 | 接雨水 | Python | 栈、数组、双指针、动态规划、单调栈 | 困难 |
0085 | 最大矩形 | 栈、数组、动态规划、矩阵、单调栈 | 困难 | |
0862 | 和至少为 K 的最短子数组 | Python | 队列、数组、二分查找、前缀和、滑动窗口、单调队列、堆(优先队列) | 困难 |
04. 队列
队列基础题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0622 | 设计循环队列 | Python | 设计、队列、数组、链表 | 中等 |
0346 | 数据流中的移动平均值 | Python | 设计、队列、数组、数据流 | 简单 |
0225 | 用队列实现栈 | Python | 栈、设计、队列 | 简单 |
优先队列题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0703 | 数据流中的第 K 大元素 | Python | 树、设计、二叉搜索树、二叉树、数据流、堆(优先队列) | 简单 |
0347 | 前 K 个高频元素 | Python | 数组、哈希表、分治、桶排序、计数、快速选择、排序、堆(优先队列) | 中等 |
0451 | 根据字符出现频率排序 | Python | 哈希表、字符串、桶排序、计数、排序、堆(优先队列) | 中等 |
0973 | 最接近原点的 K 个点 | Python | 几何、数组、数学、分治、快速选择、排序、堆(优先队列) | 中等 |
1296 | 划分数组为连续数字的集合 | Python | 贪心、数组、哈希表、排序 | 中等 |
0239 | 滑动窗口最大值 | Python | 队列、数组、滑动窗口、单调队列、堆(优先队列) | 困难 |
0295 | 数据流的中位数 | Python | 设计、双指针、数据流、排序、堆(优先队列) | 困难 |
0023 | 合并 K 个升序链表 | Python | 链表、分治、堆(优先队列)、归并排序 | 困难 |
0218 | 天际线问题 | Python | 树状数组、线段树、数组、分治、有序集合、扫描线、堆(优先队列) | 困难 |
05. 哈希表
哈希表题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0705 | 设计哈希集合 | Python | 设计、数组、哈希表、链表、哈希函数 | 简单 |
0706 | 设计哈希映射 | Python | 设计、数组、哈希表、链表、哈希函数 | 简单 |
0217 | 存在重复元素 | Python | 数组、哈希表、排序 | 简单 |
0219 | 存在重复元素 II | Python | 数组、哈希表、滑动窗口 | 简单 |
0220 | 存在重复元素 III | Python | 数组、桶排序、有序集合、排序、滑动窗口 | 困难 |
1941 | 检查是否所有字符出现次数相同 | Python | 哈希表、字符串、计数 | 简单 |
0136 | 只出现一次的数字 | Python | 位运算、数组 | 简单 |
0383 | 赎金信 | Python | 哈希表、字符串、计数 | 简单 |
0349 | 两个数组的交集 | Python | 数组、哈希表、双指针、二分查找、排序 | 简单 |
0350 | 两个数组的交集 II | Python | 数组、哈希表、双指针、二分查找、排序 | 简单 |
0036 | 有效的数独 | Python | 数组、哈希表、矩阵 | 中等 |
0001 | 两数之和 | Python | 数组、哈希表 | 简单 |
0015 | 三数之和 | Python | 数组、双指针、排序 | 中等 |
0018 | 四数之和 | Python | 数组、双指针、排序 | 中等 |
0454 | 四数相加 II | Python | 数组、哈希表 | 中等 |
0041 | 缺失的第一个正数 | Python | 数组、哈希表 | 困难 |
0128 | 最长连续序列 | Python | 并查集、数组、哈希表 | 中等 |
0202 | 快乐数 | Python | 哈希表、数学、双指针 | 简单 |
0242 | 有效的字母异位词 | Python | 哈希表、字符串、排序 | 简单 |
0205 | 同构字符串 | Python | 哈希表、字符串 | 简单 |
0442 | 数组中重复的数据 | 数组、哈希表 | 中等 | |
剑指 Offer 61 | 扑克牌中的顺子 | Python | 数组、排序 | 简单 |
0268 | 丢失的数字 | Python | 位运算、数组、哈希表、数学、二分查找、排序 | 简单 |
剑指 Offer 03 | 数组中重复的数字 | Python | 数组、哈希表、排序 | 简单 |
0451 | 根据字符出现频率排序 | Python | 哈希表、字符串、桶排序、计数、排序、堆(优先队列) | 中等 |
0049 | 字母异位词分组 | Python | 数组、哈希表、字符串、排序 | 中等 |
0599 | 两个列表的最小索引总和 | Python | 数组、哈希表、字符串 | 简单 |
0387 | 字符串中的第一个唯一字符 | Python | 队列、哈希表、字符串、计数 | 简单 |
0447 | 回旋镖的数量 | Python | 数组、哈希表、数学 | 中等 |
0149 | 直线上最多的点数 | Python | 几何、数组、哈希表、数学 | 困难 |
0359 | 日志速率限制器 | Python | 设计、哈希表 | 简单 |
0811 | 子域名访问计数 | Python | 数组、哈希表、字符串、计数 | 中等 |
06. 字符串
字符串基础题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0125 | 验证回文串 | Python | 双指针、字符串 | 简单 |
0005 | 最长回文子串 | Python | 字符串、动态规划 | 中等 |
0003 | 无重复字符的最长子串 | Python | 哈希表、字符串、滑动窗口 | 中等 |
0344 | 反转字符串 | Python | 双指针、字符串 | 简单 |
0557 | 反转字符串中的单词 III | Python | 双指针、字符串 | 简单 |
0049 | 字母异位词分组 | Python | 数组、哈希表、字符串、排序 | 中等 |
0415 | 字符串相加 | Python | 数学、字符串、模拟 | 简单 |
0151 | 反转字符串中的单词 | Python | 双指针、字符串 | 中等 |
0043 | 字符串相乘 | Python | 数学、字符串、模拟 | 中等 |
0014 | 最长公共前缀 | Python | 字典树、字符串 | 简单 |
单模式串匹配题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0028 | 找出字符串中第一个匹配项的下标 | Python | 双指针、字符串、字符串匹配 | 中等 |
0459 | 重复的子字符串 | Python | 字符串、字符串匹配 | 简单 |
0686 | 重复叠加字符串匹配 | Python | 字符串、字符串匹配 | 中等 |
1668 | 最大重复子字符串 | 字符串、字符串匹配 | 简单 | |
0796 | 旋转字符串 | Python | 字符串、字符串匹配 | 简单 |
1408 | 数组中的字符串匹配 | Python | 数组、字符串、字符串匹配 | 简单 |
2156 | 查找给定哈希值的子串 | Python | 字符串、滑动窗口、哈希函数、滚动哈希 | 困难 |
字典树题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0208 | 实现 Trie (前缀树) | Python | 设计、字典树、哈希表、字符串 | 中等 |
0677 | 键值映射 | Python | 设计、字典树、哈希表、字符串 | 中等 |
0648 | 单词替换 | Python | 字典树、数组、哈希表、字符串 | 中等 |
0642 | 设计搜索自动补全系统 | Python | 设计、字典树、字符串、数据流 | 困难 |
0211 | 添加与搜索单词 - 数据结构设计 | Python | 深度优先搜索、设计、字典树、字符串 | 中等 |
0421 | 数组中两个数的最大异或值 | Python | 位运算、字典树、数组、哈希表 | 中等 |
0212 | 单词搜索 II | Python | 字典树、数组、字符串、回溯、矩阵 | 困难 |
0425 | 单词方块 | Python | 字典树、数组、字符串、回溯 | 困难 |
0336 | 回文对 | Python | 字典树、数组、哈希表、字符串 | 困难 |
1023 | 驼峰式匹配 | Python | 字典树、双指针、字符串、字符串匹配 | 中等 |
0676 | 实现一个魔法字典 | Python | 设计、字典树、哈希表、字符串 | 中等 |
0440 | 字典序的第K小数字 | 字典树 | 困难 |
07. 树
二叉树的遍历题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0144 | 二叉树的前序遍历 | Python | 栈、树、深度优先搜索、二叉树 | 简单 |
0094 | 二叉树的中序遍历 | Python | 栈、树、深度优先搜索、二叉树 | 简单 |
0145 | 二叉树的后序遍历 | Python | 栈、树、深度优先搜索、二叉树 | 简单 |
0102 | 二叉树的层序遍历 | Python | 树、广度优先搜索、二叉树 | 中等 |
0103 | 二叉树的锯齿形层序遍历 | Python | 树、广度优先搜索、二叉树 | 中等 |
0107 | 二叉树的层序遍历 II | Python | 树、广度优先搜索、二叉树 | 中等 |
0104 | 二叉树的最大深度 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 简单 |
0111 | 二叉树的最小深度 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 简单 |
0124 | 二叉树中的最大路径和 | Python | 树、深度优先搜索、动态规划、二叉树 | 困难 |
0101 | 对称二叉树 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 简单 |
0112 | 路径总和 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 简单 |
0113 | 路径总和 II | Python | 树、深度优先搜索、回溯、二叉树 | 中等 |
0236 | 二叉树的最近公共祖先 | Python | 树、深度优先搜索、二叉树 | 中等 |
0199 | 二叉树的右视图 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 中等 |
0226 | 翻转二叉树 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 简单 |
0958 | 二叉树的完全性检验 | Python | 树、广度优先搜索、二叉树 | 中等 |
0572 | 另一棵树的子树 | 树、深度优先搜索、二叉树、字符串匹配、哈希函数 | 简单 | |
0100 | 相同的树 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 简单 |
0116 | 填充每个节点的下一个右侧节点指针 | Python | 树、深度优先搜索、广度优先搜索、链表、二叉树 | 中等 |
0117 | 填充每个节点的下一个右侧节点指针 II | Python | 树、深度优先搜索、广度优先搜索、链表、二叉树 | 中等 |
0297 | 二叉树的序列化与反序列化 | Python | 树、深度优先搜索、广度优先搜索、设计、字符串、二叉树 | 困难 |
0114 | 二叉树展开为链表 | 栈、树、深度优先搜索、链表、二叉树 | 中等 |
二叉树的还原题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0105 | 从前序与中序遍历序列构造二叉树 | Python | 树、数组、哈希表、分治、二叉树 | 中等 |
0106 | 从中序与后序遍历序列构造二叉树 | Python | 树、数组、哈希表、分治、二叉树 | 中等 |
0889 | 根据前序和后序遍历构造二叉树 | Python | 树、数组、哈希表、分治、二叉树 | 中等 |
二叉搜索树题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0098 | 验证二叉搜索树 | Python | 树、深度优先搜索、二叉搜索树、二叉树 | 中等 |
0173 | 二叉搜索树迭代器 | Python | 栈、树、设计、二叉搜索树、二叉树、迭代器 | 中等 |
0700 | 二叉搜索树中的搜索 | Python | 树、二叉搜索树、二叉树 | 简单 |
0701 | 二叉搜索树中的插入操作 | Python | 树、二叉搜索树、二叉树 | 中等 |
0450 | 删除二叉搜索树中的节点 | Python | 树、二叉搜索树、二叉树 | 中等 |
0703 | 数据流中的第 K 大元素 | Python | 树、设计、二叉搜索树、二叉树、数据流、堆(优先队列) | 简单 |
剑指 Offer 54 | 二叉搜索树的第k大节点 | Python | 树、深度优先搜索、二叉搜索树、二叉树 | 简单 |
0230 | 二叉搜索树中第K小的元素 | 树、深度优先搜索、二叉搜索树、二叉树 | 中等 | |
0235 | 二叉搜索树的最近公共祖先 | Python | 树、深度优先搜索、二叉搜索树、二叉树 | 中等 |
0426 | 将二叉搜索树转化为排序的双向链表 | Python | 栈、树、深度优先搜索、二叉搜索树、链表、二叉树、双向链表 | 中等 |
0108 | 将有序数组转换为二叉搜索树 | Python | 树、二叉搜索树、数组、分治、二叉树 | 简单 |
0110 | 平衡二叉树 | Python | 树、深度优先搜索、二叉树 | 简单 |
线段树题目
单点更新题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0303 | 区域和检索 - 数组不可变 | Python | 设计、数组、前缀和 | 简单 |
0307 | 区域和检索 - 数组可修改 | Python | 设计、树状数组、线段树、数组 | 中等 |
0354 | 俄罗斯套娃信封问题 | Python | 数组、二分查找、动态规划、排序 | 困难 |
区间更新题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0370 | 区间加法 | Python | 数组、前缀和 | 中等 |
1109 | 航班预订统计 | Python | 数组、前缀和 | 中等 |
1450 | 在既定时间做作业的学生人数 | Python | 数组 | 简单 |
0673 | 最长递增子序列的个数 | Python | 树状数组、线段树、数组、动态规划 | 中等 |
1310 | 子数组异或查询 | Python | 位运算、数组、前缀和 | 中等 |
1851 | 包含每个查询的最小区间 | 数组、二分查找、排序、扫描线、堆(优先队列) | 困难 |
区间合并题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0729 | 我的日程安排表 I | Python | 设计、线段树、二分查找、有序集合 | 中等 |
0731 | 我的日程安排表 II | Python | 设计、线段树、二分查找、有序集合 | 中等 |
0732 | 我的日程安排表 III | Python | 设计、线段树、二分查找、有序集合 | 困难 |
扫描线问题
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0218 | 天际线问题 | Python | 树状数组、线段树、数组、分治、有序集合、扫描线、堆(优先队列) | 困难 |
0391 | 完美矩形 | Python | 数组、扫描线 | 困难 |
0850 | 矩形面积 II | Python | 线段树、数组、有序集合、扫描线 | 困难 |
树状数组题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0303 | 区域和检索 - 数组不可变 | Python | 设计、数组、前缀和 | 简单 |
0307 | 区域和检索 - 数组可修改 | Python | 设计、树状数组、线段树、数组 | 中等 |
0315 | 计算右侧小于当前元素的个数 | Python | 树状数组、线段树、数组、二分查找、分治、有序集合、归并排序 | 困难 |
1450 | 在既定时间做作业的学生人数 | Python | 数组 | 简单 |
0354 | 俄罗斯套娃信封问题 | Python | 数组、二分查找、动态规划、排序 | 困难 |
0673 | 最长递增子序列的个数 | Python | 树状数组、线段树、数组、动态规划 | 中等 |
1310 | 子数组异或查询 | Python | 位运算、数组、前缀和 | 中等 |
1893 | 检查是否区域内所有整数都被覆盖 | Python | 数组、哈希表、前缀和 | 简单 |
并查集题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0990 | 等式方程的可满足性 | Python | 并查集、图、数组、字符串 | 中等 |
0547 | 省份数量 | Python | 深度优先搜索、广度优先搜索、并查集、图 | 中等 |
0684 | 冗余连接 | Python | 深度优先搜索、广度优先搜索、并查集、图 | 中等 |
1319 | 连通网络的操作次数 | Python | 深度优先搜索、广度优先搜索、并查集、图 | 中等 |
0765 | 情侣牵手 | Python | 贪心、深度优先搜索、广度优先搜索、并查集、图 | 困难 |
0399 | 除法求值 | Python | 深度优先搜索、广度优先搜索、并查集、图、数组、最短路 | 中等 |
0959 | 由斜杠划分区域 | Python | 深度优先搜索、广度优先搜索、并查集、图 | 中等 |
1631 | 最小体力消耗路径 | Python | 深度优先搜索、广度优先搜索、并查集、数组、二分查找、矩阵、堆(优先队列) | 中等 |
0778 | 水位上升的泳池中游泳 | Python | 深度优先搜索、广度优先搜索、并查集、数组、二分查找、矩阵、堆(优先队列) | 困难 |
1202 | 交换字符串中的元素 | Python | 深度优先搜索、广度优先搜索、并查集、哈希表、字符串 | 中等 |
0947 | 移除最多的同行或同列石头 | Python | 深度优先搜索、并查集、图 | 中等 |
0803 | 打砖块 | Python | 并查集、数组、矩阵 | 困难 |
0128 | 最长连续序列 | Python | 并查集、数组、哈希表 | 中等 |
08. 图论
图的深度优先搜索题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0797 | 所有可能的路径 | Python | 深度优先搜索、广度优先搜索、图、回溯 | 中等 |
0200 | 岛屿数量 | Python | 深度优先搜索、广度优先搜索、并查集、数组、矩阵 | 中等 |
0695 | 岛屿的最大面积 | Python | 深度优先搜索、广度优先搜索、并查集、数组、矩阵 | 中等 |
0133 | 克隆图 | Python | 深度优先搜索、广度优先搜索、图、哈希表 | 中等 |
0494 | 目标和 | Python | 数组、动态规划、回溯 | 中等 |
0144 | 二叉树的前序遍历 | Python | 栈、树、深度优先搜索、二叉树 | 简单 |
0094 | 二叉树的中序遍历 | Python | 栈、树、深度优先搜索、二叉树 | 简单 |
0145 | 二叉树的后序遍历 | Python | 栈、树、深度优先搜索、二叉树 | 简单 |
0589 | N 叉树的前序遍历 | Python | 栈、树、深度优先搜索 | 简单 |
0590 | N 叉树的后序遍历 | Python | 栈、树、深度优先搜索 | 简单 |
0124 | 二叉树中的最大路径和 | Python | 树、深度优先搜索、动态规划、二叉树 | 困难 |
0199 | 二叉树的右视图 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 中等 |
0543 | 二叉树的直径 | Python | 树、深度优先搜索、二叉树 | 简单 |
0662 | 二叉树最大宽度 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 中等 |
0958 | 二叉树的完全性检验 | Python | 树、广度优先搜索、二叉树 | 中等 |
0572 | 另一棵树的子树 | 树、深度优先搜索、二叉树、字符串匹配、哈希函数 | 简单 | |
0100 | 相同的树 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 简单 |
0111 | 二叉树的最小深度 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 简单 |
0841 | 钥匙和房间 | Python | 深度优先搜索、广度优先搜索、图 | 中等 |
0129 | 求根节点到叶节点数字之和 | Python | 树、深度优先搜索、二叉树 | 中等 |
0323 | 无向图中连通分量的数目 | Python | 深度优先搜索、广度优先搜索、并查集、图 | 中等 |
0684 | 冗余连接 | Python | 深度优先搜索、广度优先搜索、并查集、图 | 中等 |
0802 | 找到最终的安全状态 | Python | 深度优先搜索、广度优先搜索、图、拓扑排序 | 中等 |
0785 | 判断二分图 | Python | 深度优先搜索、广度优先搜索、并查集、图 | 中等 |
0886 | 可能的二分法 | Python | 深度优先搜索、广度优先搜索、并查集、图 | 中等 |
0323 | 无向图中连通分量的数目 | Python | 深度优先搜索、广度优先搜索、并查集、图 | 中等 |
0130 | 被围绕的区域 | Python | 深度优先搜索、广度优先搜索、并查集、数组、矩阵 | 中等 |
0417 | 太平洋大西洋水流问题 | Python | 深度优先搜索、广度优先搜索、数组、矩阵 | 中等 |
1020 | 飞地的数量 | Python | 深度优先搜索、广度优先搜索、并查集、数组、矩阵 | 中等 |
1254 | 统计封闭岛屿的数目 | Python | 深度优先搜索、广度优先搜索、并查集、数组、矩阵 | 中等 |
1034 | 边界着色 | Python | 深度优先搜索、广度优先搜索、数组、矩阵 | 中等 |
剑指 Offer 13 | 机器人的运动范围 | Python | 深度优先搜索、广度优先搜索、动态规划 | 中等 |
0529 | 扫雷游戏 | 深度优先搜索、广度优先搜索、数组、矩阵 | 中等 |
图的广度优先搜索题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0797 | 所有可能的路径 | Python | 深度优先搜索、广度优先搜索、图、回溯 | 中等 |
0286 | 墙与门 | Python | 广度优先搜索、数组、矩阵 | 中等 |
0200 | 岛屿数量 | Python | 深度优先搜索、广度优先搜索、并查集、数组、矩阵 | 中等 |
0752 | 打开转盘锁 | Python | 广度优先搜索、数组、哈希表、字符串 | 中等 |
0279 | 完全平方数 | Python | 广度优先搜索、数学、动态规划 | 中等 |
0133 | 克隆图 | Python | 深度优先搜索、广度优先搜索、图、哈希表 | 中等 |
0733 | 图像渲染 | Python | 深度优先搜索、广度优先搜索、数组、矩阵 | 简单 |
0542 | 01 矩阵 | Python | 广度优先搜索、数组、动态规划、矩阵 | 中等 |
0322 | 零钱兑换 | Python | 广度优先搜索、数组、动态规划 | 中等 |
0323 | 无向图中连通分量的数目 | Python | 深度优先搜索、广度优先搜索、并查集、图 | 中等 |
剑指 Offer 13 | 机器人的运动范围 | Python | 深度优先搜索、广度优先搜索、动态规划 | 中等 |
0199 | 二叉树的右视图 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 中等 |
0662 | 二叉树最大宽度 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 中等 |
0958 | 二叉树的完全性检验 | Python | 树、广度优先搜索、二叉树 | 中等 |
0572 | 另一棵树的子树 | 树、深度优先搜索、二叉树、字符串匹配、哈希函数 | 简单 | |
0100 | 相同的树 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 简单 |
0111 | 二叉树的最小深度 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 简单 |
剑指 Offer 32 - III | 从上到下打印二叉树 III | Python | 树、广度优先搜索、二叉树 | 中等 |
图的拓扑排序题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0207 | 课程表 | Python | 深度优先搜索、广度优先搜索、图、拓扑排序 | 中等 |
0210 | 课程表 II | Python | 深度优先搜索、广度优先搜索、图、拓扑排序 | 中等 |
1136 | 并行课程 | Python | 图、拓扑排序 | 中等 |
2050 | 并行课程 III | Python | 图、拓扑排序、数组、动态规划 | 困难 |
0802 | 找到最终的安全状态 | Python | 深度优先搜索、广度优先搜索、图、拓扑排序 | 中等 |
0851 | 喧闹和富有 | Python | 深度优先搜索、图、拓扑排序、数组 | 中等 |
图的最小生成树题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
1584 | 连接所有点的最小费用 | Python | 并查集、图、数组、最小生成树 | 中等 |
1631 | 最小体力消耗路径 | Python | 深度优先搜索、广度优先搜索、并查集、数组、二分查找、矩阵、堆(优先队列) | 中等 |
0778 | 水位上升的泳池中游泳 | Python | 深度优先搜索、广度优先搜索、并查集、数组、二分查找、矩阵、堆(优先队列) | 困难 |
单源最短路径题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0407 | 接雨水 II | 广度优先搜索、数组、矩阵、堆(优先队列) | 困难 | |
0743 | 网络延迟时间 | 深度优先搜索、广度优先搜索、图、最短路、堆(优先队列) | 中等 | |
0787 | K 站中转内最便宜的航班 | 深度优先搜索、广度优先搜索、图、动态规划、最短路、堆(优先队列) | 中等 | |
1631 | 最小体力消耗路径 | Python | 深度优先搜索、广度优先搜索、并查集、数组、二分查找、矩阵、堆(优先队列) | 中等 |
1786 | 从第一个节点出发到最后一个节点的受限路径数 | 图、拓扑排序、动态规划、最短路、堆(优先队列) | 中等 |
多源最短路径题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0815 | 公交路线 | 广度优先搜索、数组、哈希表 | 困难 | |
1162 | 地图分析 | 广度优先搜索、数组、动态规划、矩阵 | 中等 |
次短路径题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
2045 | 到达目的地的第二短时间 | 广度优先搜索、图、最短路 | 困难 |
差分约束系统
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0995 | K 连续位的最小翻转次数 | Python | 位运算、队列、数组、前缀和、滑动窗口 | 困难 |
1109 | 航班预订统计 | Python | 数组、前缀和 | 中等 |
二分图基础题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0785 | 判断二分图 | Python | 深度优先搜索、广度优先搜索、并查集、图 | 中等 |
二分图最大匹配题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
LCP 04 | 覆盖 | 位运算、图、数组、动态规划、状态压缩 | 困难 | |
1947 | 最大兼容性评分和 | Python | 位运算、数组、动态规划、回溯、状态压缩 | 中等 |
1595 | 连通两组点的最小成本 | Python | 位运算、数组、动态规划、状态压缩、矩阵 | 困难 |
09. 基础算法
枚举算法题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0001 | 两数之和 | Python | 数组、哈希表 | 简单 |
0204 | 计数质数 | Python | 数组、数学、枚举、数论 | 中等 |
1925 | 统计平方和三元组的数目 | Python | 数学、枚举 | 简单 |
1450 | 在既定时间做作业的学生人数 | Python | 数组 | 简单 |
1620 | 网络信号最好的坐标 | 数组、枚举 | 中等 | |
剑指 Offer 57 - II | 和为s的连续正数序列 | Python | 数学、双指针、枚举 | 简单 |
0800 | 相似 RGB 颜色 | Python | 数学、字符串、枚举 | 简单 |
0221 | 最大正方形 | Python | 数组、动态规划、矩阵 | 中等 |
0560 | 和为 K 的子数组 | Python | 数组、哈希表、前缀和 | 中等 |
递归算法题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0344 | 反转字符串 | Python | 双指针、字符串 | 简单 |
0024 | 两两交换链表中的节点 | Python | 递归、链表 | 中等 |
0118 | 杨辉三角 | Python | 数组、动态规划 | 简单 |
0119 | 杨辉三角 II | Python | 数组、动态规划 | 简单 |
0206 | 反转链表 | Python | 递归、链表 | 简单 |
0092 | 反转链表 II | Python | 链表 | 中等 |
0021 | 合并两个有序链表 | Python | 递归、链表 | 简单 |
0509 | 斐波那契数 | Python | 递归、记忆化搜索、数学、动态规划 | 简单 |
0070 | 爬楼梯 | Python | 记忆化搜索、数学、动态规划 | 简单 |
0104 | 二叉树的最大深度 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 简单 |
0124 | 二叉树中的最大路径和 | Python | 树、深度优先搜索、动态规划、二叉树 | 困难 |
0226 | 翻转二叉树 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 简单 |
0050 | Pow(x, n) | Python | 递归、数学 | 中等 |
0779 | 第K个语法符号 | Python | 位运算、递归、数学 | 中等 |
0095 | 不同的二叉搜索树 II | Python | 树、二叉搜索树、动态规划、回溯、二叉树 | 中等 |
剑指 Offer 62 | 圆圈中最后剩下的数字 | Python | 递归、数学 | 简单 |
分治算法题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0004 | 寻找两个正序数组的中位数 | Python | 数组、二分查找、分治 | 困难 |
0023 | 合并 K 个升序链表 | Python | 链表、分治、堆(优先队列)、归并排序 | 困难 |
0053 | 最大子数组和 | Python | 数组、分治、动态规划 | 中等 |
0241 | 为运算表达式设计优先级 | Python | 递归、记忆化搜索、数学、字符串、动态规划 | 中等 |
0169 | 多数元素 | Python | 数组、哈希表、分治、计数、排序 | 简单 |
0050 | Pow(x, n) | Python | 递归、数学 | 中等 |
0014 | 最长公共前缀 | Python | 字典树、字符串 | 简单 |
剑指 Offer 33 | 二叉搜索树的后序遍历序列 | Python | 栈、树、二叉搜索树、递归、二叉树、单调栈 | 中等 |
回溯算法题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0046 | 全排列 | Python | 数组、回溯 | 中等 |
0047 | 全排列 II | Python | 数组、回溯 | 中等 |
0037 | 解数独 | Python | 数组、哈希表、回溯、矩阵 | 困难 |
0022 | 括号生成 | Python | 字符串、动态规划、回溯 | 中等 |
0017 | 电话号码的字母组合 | Python | 哈希表、字符串、回溯 | 中等 |
0784 | 字母大小写全排列 | Python | 位运算、字符串、回溯 | 中等 |
0039 | 组合总和 | Python | 数组、回溯 | 中等 |
0040 | 组合总和 II | Python | 数组、回溯 | 中等 |
0078 | 子集 | Python | 位运算、数组、回溯 | 中等 |
0090 | 子集 II | Python | 位运算、数组、回溯 | 中等 |
0473 | 火柴拼正方形 | Python | 位运算、数组、动态规划、回溯、状态压缩 | 中等 |
1593 | 拆分字符串使唯一子字符串的数目最大 | Python | 哈希表、字符串、回溯 | 中等 |
1079 | 活字印刷 | Python | 哈希表、字符串、回溯、计数 | 中等 |
0093 | 复原 IP 地址 | Python | 字符串、回溯 | 中等 |
0079 | 单词搜索 | Python | 数组、回溯、矩阵 | 中等 |
0679 | 24 点游戏 | 数组、数学、回溯 | 困难 |
贪心算法题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0455 | 分发饼干 | Python | 贪心、数组、双指针、排序 | 简单 |
0860 | 柠檬水找零 | Python | 贪心、数组 | 简单 |
0056 | 合并区间 | Python | 数组、排序 | 中等 |
0435 | 无重叠区间 | Python | 贪心、数组、动态规划、排序 | 中等 |
0452 | 用最少数量的箭引爆气球 | Python | 贪心、数组、排序 | 中等 |
0055 | 跳跃游戏 | Python | 贪心、数组、动态规划 | 中等 |
0045 | 跳跃游戏 II | Python | 贪心、数组、动态规划 | 中等 |
0122 | 买卖股票的最佳时机 II | Python | 贪心、数组 | 中等 |
0561 | 数组拆分 | Python | 贪心、数组、计数排序、排序 | 简单 |
1710 | 卡车上的最大单元数 | Python | 贪心、数组、排序 | 简单 |
1217 | 玩筹码 | Python | 贪心、数组、数学 | 简单 |
1247 | 交换字符使得字符串相同 | Python | 贪心、数学、字符串 | 中等 |
1400 | 构造 K 个回文字符串 | Python | 贪心、哈希表、字符串、计数 | 中等 |
0921 | 使括号有效的最少添加 | Python | 栈、贪心、字符串 | 中等 |
1029 | 两地调度 | Python | 贪心、数组、排序 | 中等 |
1605 | 给定行和列的和求可行矩阵 | Python | 贪心、数组、矩阵 | 中等 |
0135 | 分发糖果 | Python | 贪心、数组 | 困难 |
0134 | 加油站 | Python | 贪心、数组 | 中等 |
0053 | 最大子数组和 | Python | 数组、分治、动态规划 | 中等 |
0376 | 摆动序列 | Python | 贪心、数组、动态规划 | 中等 |
0738 | 单调递增的数字 | Python | 贪心、数学 | 中等 |
0402 | 移掉 K 位数字 | 栈、贪心、字符串、单调栈 | 中等 | |
0861 | 翻转矩阵后的得分 | Python | 贪心、位运算、数组、矩阵 | 中等 |
0670 | 最大交换 | 贪心、数学 | 中等 |
位运算题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0504 | 七进制数 | Python | 数学 | 简单 |
0405 | 数字转换为十六进制数 | Python | 位运算、数学 | 简单 |
0190 | 颠倒二进制位 | Python | 位运算、分治 | 简单 |
1009 | 十进制整数的反码 | Python | 位运算 | 简单 |
0191 | 位1的个数 | Python | 位运算、分治 | 简单 |
0371 | 两整数之和 | Python | 位运算、数学 | 中等 |
0089 | 格雷编码 | Python | 位运算、数学、回溯 | 中等 |
0201 | 数字范围按位与 | Python | 位运算 | 中等 |
0338 | 比特位计数 | Python | 位运算、动态规划 | 简单 |
0136 | 只出现一次的数字 | Python | 位运算、数组 | 简单 |
0137 | 只出现一次的数字 II | Python | 位运算、数组 | 中等 |
0260 | 只出现一次的数字 III | Python | 位运算、数组 | 中等 |
0268 | 丢失的数字 | Python | 位运算、数组、哈希表、数学、二分查找、排序 | 简单 |
1349 | 参加考试的最大学生数 | Python | 位运算、数组、动态规划、状态压缩、矩阵 | 困难 |
0645 | 错误的集合 | 位运算、数组、哈希表、排序 | 简单 | |
0078 | 子集 | Python | 位运算、数组、回溯 | 中等 |
0090 | 子集 II | Python | 位运算、数组、回溯 | 中等 |
10. 动态规划
动态规划基础题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0509 | 斐波那契数 | Python | 递归、记忆化搜索、数学、动态规划 | 简单 |
0070 | 爬楼梯 | Python | 记忆化搜索、数学、动态规划 | 简单 |
0062 | 不同路径 | Python | 数学、动态规划、组合数学 | 中等 |
记忆化搜索题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
1137 | 第 N 个泰波那契数 | Python | 记忆化搜索、数学、动态规划 | 简单 |
0375 | 猜数字大小 II | Python | 数学、动态规划、博弈 | 中等 |
0494 | 目标和 | Python | 数组、动态规划、回溯 | 中等 |
0576 | 出界的路径数 | Python | 动态规划 | 中等 |
0087 | 扰乱字符串 | 字符串、动态规划 | 困难 | |
0403 | 青蛙过河 | Python | 数组、动态规划 | 困难 |
0552 | 学生出勤记录 II | 动态规划 | 困难 | |
0913 | 猫和老鼠 | 图、拓扑排序、记忆化搜索、数学、动态规划、博弈 | 困难 | |
0329 | 矩阵中的最长递增路径 | Python | 深度优先搜索、广度优先搜索、图、拓扑排序、记忆化搜索、数组、动态规划、矩阵 | 困难 |
线性 DP 题目
单串线性 DP 问题
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0300 | 最长递增子序列 | Python | 数组、二分查找、动态规划 | 中等 |
0673 | 最长递增子序列的个数 | Python | 树状数组、线段树、数组、动态规划 | 中等 |
0354 | 俄罗斯套娃信封问题 | Python | 数组、二分查找、动态规划、排序 | 困难 |
0053 | 最大子数组和 | Python | 数组、分治、动态规划 | 中等 |
0152 | 乘积最大子数组 | Python | 数组、动态规划 | 中等 |
0918 | 环形子数组的最大和 | Python | 队列、数组、分治、动态规划、单调队列 | 中等 |
0198 | 打家劫舍 | Python | 数组、动态规划 | 中等 |
0213 | 打家劫舍 II | Python | 数组、动态规划 | 中等 |
0740 | 删除并获得点数 | 数组、哈希表、动态规划 | 中等 | |
1388 | 3n 块披萨 | 贪心、数组、动态规划、堆(优先队列) | 困难 | |
0873 | 最长的斐波那契子序列的长度 | Python | 数组、哈希表、动态规划 | 中等 |
1027 | 最长等差数列 | 数组、哈希表、二分查找、动态规划 | 中等 | |
1055 | 形成字符串的最短路径 | 贪心、双指针、字符串 | 中等 | |
0368 | 最大整除子集 | 数组、数学、动态规划、排序 | 中等 | |
0032 | 最长有效括号 | Python | 栈、字符串、动态规划 | 困难 |
0413 | 等差数列划分 | 数组、动态规划 | 中等 | |
0091 | 解码方法 | Python | 字符串、动态规划 | 中等 |
0639 | 解码方法 II | Python | 字符串、动态规划 | 困难 |
0132 | 分割回文串 II | 字符串、动态规划 | 困难 | |
1220 | 统计元音字母序列的数目 | Python | 动态规划 | 困难 |
0338 | 比特位计数 | Python | 位运算、动态规划 | 简单 |
0801 | 使序列递增的最小交换次数 | Python | 数组、动态规划 | 困难 |
0871 | 最低加油次数 | 贪心、数组、动态规划、堆(优先队列) | 困难 | |
0045 | 跳跃游戏 II | Python | 贪心、数组、动态规划 | 中等 |
0813 | 最大平均值和的分组 | 数组、动态规划、前缀和 | 中等 | |
0887 | 鸡蛋掉落 | Python | 数学、二分查找、动态规划 | 困难 |
0256 | 粉刷房子 | 数组、动态规划 | 中等 | |
0265 | 粉刷房子 II | 数组、动态规划 | 困难 | |
1473 | 粉刷房子 III | 数组、动态规划 | 困难 | |
0975 | 奇偶跳 | 栈、数组、动态规划、有序集合、单调栈 | 困难 | |
0403 | 青蛙过河 | Python | 数组、动态规划 | 困难 |
1478 | 安排邮筒 | 数组、数学、动态规划、排序 | 困难 | |
1230 | 抛掷硬币 | 数学、动态规划、概率与统计 | 中等 | |
0410 | 分割数组的最大值 | Python | 贪心、数组、二分查找、动态规划、前缀和 | 困难 |
1751 | 最多可以参加的会议数目 II | 数组、二分查找、动态规划、排序 | 困难 | |
1787 | 使所有区间的异或结果为零 | 位运算、数组、动态规划 | 困难 | |
0121 | 买卖股票的最佳时机 | Python | 数组、动态规划 | 简单 |
0122 | 买卖股票的最佳时机 II | Python | 贪心、数组 | 中等 |
0123 | 买卖股票的最佳时机 III | Python | 数组、动态规划 | 困难 |
0188 | 买卖股票的最佳时机 IV | Python | 数组、动态规划 | 困难 |
0309 | 最佳买卖股票时机含冷冻期 | Python | 数组、动态规划 | 中等 |
0714 | 买卖股票的最佳时机含手续费 | Python | 贪心、数组 | 中等 |
双串线性 DP 问题
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
1143 | 最长公共子序列 | Python | 字符串、动态规划 | 中等 |
0712 | 两个字符串的最小ASCII删除和 | 字符串、动态规划 | 中等 | |
0718 | 最长重复子数组 | Python | 数组、二分查找、动态规划、滑动窗口、哈希函数、滚动哈希 | 中等 |
0583 | 两个字符串的删除操作 | Python | 字符串、动态规划 | 中等 |
0072 | 编辑距离 | Python | 字符串、动态规划 | 困难 |
0044 | 通配符匹配 | Python | 贪心、递归、字符串、动态规划 | 困难 |
0010 | 正则表达式匹配 | Python | 递归、字符串、动态规划 | 困难 |
0097 | 交错字符串 | 字符串、动态规划 | 中等 | |
0115 | 不同的子序列 | Python | 字符串、动态规划 | 困难 |
0087 | 扰乱字符串 | 字符串、动态规划 | 困难 |
矩阵线性 DP 问题
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0118 | 杨辉三角 | Python | 数组、动态规划 | 简单 |
0119 | 杨辉三角 II | Python | 数组、动态规划 | 简单 |
0120 | 三角形最小路径和 | Python | 数组、动态规划 | 中等 |
0064 | 最小路径和 | Python | 数组、动态规划、矩阵 | 中等 |
0174 | 地下城游戏 | 数组、动态规划、矩阵 | 困难 | |
0221 | 最大正方形 | Python | 数组、动态规划、矩阵 | 中等 |
0931 | 下降路径最小和 | 数组、动态规划、矩阵 | 中等 | |
0576 | 出界的路径数 | Python | 动态规划 | 中等 |
0085 | 最大矩形 | 栈、数组、动态规划、矩阵、单调栈 | 困难 | |
0363 | 矩形区域不超过 K 的最大数值和 | 数组、二分查找、矩阵、有序集合、前缀和 | 困难 | |
面试题 17.24 | 最大子矩阵 | 数组、动态规划、矩阵、前缀和 | 困难 | |
1444 | 切披萨的方案数 | 记忆化搜索、数组、动态规划、矩阵 | 困难 |
无串线性 DP 问题
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
1137 | 第 N 个泰波那契数 | Python | 记忆化搜索、数学、动态规划 | 简单 |
0650 | 只有两个键的键盘 | Python | 数学、动态规划 | 中等 |
0264 | 丑数 II | Python | 哈希表、数学、动态规划、堆(优先队列) | 中等 |
0279 | 完全平方数 | Python | 广度优先搜索、数学、动态规划 | 中等 |
0343 | 整数拆分 | Python | 数学、动态规划 | 中等 |
背包问题题目
0-1 背包问题
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0416 | 分割等和子集 | Python | 数组、动态规划 | 中等 |
0494 | 目标和 | Python | 数组、动态规划、回溯 | 中等 |
1049 | 最后一块石头的重量 II | Python | 数组、动态规划 | 中等 |
完全背包问题
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0279 | 完全平方数 | Python | 广度优先搜索、数学、动态规划 | 中等 |
0322 | 零钱兑换 | Python | 广度优先搜索、数组、动态规划 | 中等 |
0518 | 零钱兑换 II | Python | 数组、动态规划 | 中等 |
0139 | 单词拆分 | Python | 字典树、记忆化搜索、数组、哈希表、字符串、动态规划 | 中等 |
0377 | 组合总和 Ⅳ | Python | 数组、动态规划 | 中等 |
0638 | 大礼包 | 位运算、记忆化搜索、数组、动态规划、回溯、状态压缩 | 中等 | |
1449 | 数位成本和为目标值的最大数字 | Python | 数组、动态规划 | 困难 |
多重背包问题
分组背包问题
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
1155 | 掷骰子等于目标和的方法数 | Python | 动态规划 | 中等 |
2585 | 获得分数的方法数 | Python | 数组、动态规划 | 困难 |
多维背包问题
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0474 | 一和零 | Python | 数组、字符串、动态规划 | 中等 |
0879 | 盈利计划 | 数组、动态规划 | 困难 | |
1995 | 统计特殊四元组 | 数组、枚举 | 简单 |
区间 DP 题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0486 | 预测赢家 | Python | 递归、数组、数学、动态规划、博弈 | 中等 |
0312 | 戳气球 | Python | 数组、动态规划 | 困难 |
0877 | 石子游戏 | Python | 数组、数学、动态规划、博弈 | 中等 |
1000 | 合并石头的最低成本 | Python | 数组、动态规划、前缀和 | 困难 |
1547 | 切棍子的最小成本 | Python | 数组、动态规划、排序 | 困难 |
0664 | 奇怪的打印机 | Python | 字符串、动态规划 | 困难 |
1039 | 多边形三角剖分的最低得分 | Python | 数组、动态规划 | 中等 |
0546 | 移除盒子 | Python | 记忆化搜索、数组、动态规划 | 困难 |
0375 | 猜数字大小 II | Python | 数学、动态规划、博弈 | 中等 |
0678 | 有效的括号字符串 | Python | 栈、贪心、字符串、动态规划 | 中等 |
0005 | 最长回文子串 | Python | 字符串、动态规划 | 中等 |
0516 | 最长回文子序列 | Python | 字符串、动态规划 | 中等 |
0730 | 统计不同回文子序列 | 字符串、动态规划 | 困难 | |
2104 | 子数组范围和 | 栈、数组、单调栈 | 中等 |
树形 DP 题目
固定根的树形 DP 题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0543 | 二叉树的直径 | Python | 树、深度优先搜索、二叉树 | 简单 |
0124 | 二叉树中的最大路径和 | Python | 树、深度优先搜索、动态规划、二叉树 | 困难 |
1245 | 树的直径 | Python | 树、深度优先搜索、广度优先搜索、图、拓扑排序 | 中等 |
2246 | 相邻字符不同的最长路径 | Python | 树、深度优先搜索、图、拓扑排序、数组、字符串 | 困难 |
0687 | 最长同值路径 | Python | 树、深度优先搜索、二叉树 | 中等 |
0337 | 打家劫舍 III | Python | 树、深度优先搜索、动态规划、二叉树 | 中等 |
0333 | 最大 BST 子树 | 树、深度优先搜索、二叉搜索树、动态规划、二叉树 | 中等 | |
1617 | 统计子树中城市之间最大距离 | Python | 位运算、树、动态规划、状态压缩、枚举 | 困难 |
2538 | 最大价值和与最小价值和的差值 | Python | 树、深度优先搜索、数组、动态规划 | 困难 |
1569 | 将子数组重新排序得到同一个二叉搜索树的方案数 | 树、并查集、二叉搜索树、记忆化搜索、数组、数学、分治、动态规划、二叉树、组合数学 | 困难 | |
1372 | 二叉树中的最长交错路径 | 树、深度优先搜索、动态规划、二叉树 | 中等 | |
1373 | 二叉搜索子树的最大键值和 | 树、深度优先搜索、二叉搜索树、动态规划、二叉树 | 困难 | |
0968 | 监控二叉树 | Python | 树、深度优先搜索、动态规划、二叉树 | 困难 |
1273 | 删除树节点 | 树、深度优先搜索、广度优先搜索 | 中等 | |
1519 | 子树中标签相同的节点数 | 树、深度优先搜索、广度优先搜索、哈希表、计数 | 中等 |
不定根的树形 DP 题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0310 | 最小高度树 | Python | 深度优先搜索、广度优先搜索、图、拓扑排序 | 中等 |
0834 | 树中距离之和 | Python | 树、深度优先搜索、图、动态规划 | 困难 |
2581 | 统计可能的树根数目 | 树、深度优先搜索、哈希表、动态规划 | 困难 |
状态压缩 DP 题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
1879 | 两个数组最小的异或值之和 | Python | 位运算、数组、动态规划、状态压缩 | 困难 |
2172 | 数组的最大与和 | Python | 位运算、数组、动态规划、状态压缩 | 困难 |
1947 | 最大兼容性评分和 | Python | 位运算、数组、动态规划、回溯、状态压缩 | 中等 |
1595 | 连通两组点的最小成本 | Python | 位运算、数组、动态规划、状态压缩、矩阵 | 困难 |
1494 | 并行课程 II | 位运算、图、动态规划、状态压缩 | 困难 | |
1655 | 分配重复整数 | 位运算、数组、动态规划、回溯、状态压缩 | 困难 | |
1986 | 完成任务的最少工作时间段 | Python | 位运算、数组、动态规划、回溯、状态压缩 | 中等 |
1434 | 每个人戴不同帽子的方案数 | 位运算、数组、动态规划、状态压缩 | 困难 | |
1799 | N 次操作后的最大分数和 | 位运算、数组、数学、动态规划、回溯、状态压缩、数论 | 困难 | |
1681 | 最小不兼容性 | 位运算、数组、动态规划、状态压缩 | 困难 | |
0526 | 优美的排列 | Python | 位运算、数组、动态规划、回溯、状态压缩 | 中等 |
0351 | 安卓系统手势解锁 | Python | 动态规划、回溯 | 中等 |
0464 | 我能赢吗 | Python | 位运算、记忆化搜索、数学、动态规划、状态压缩、博弈 | 中等 |
0847 | 访问所有节点的最短路径 | Python | 位运算、广度优先搜索、图、动态规划、状态压缩 | 困难 |
0638 | 大礼包 | 位运算、记忆化搜索、数组、动态规划、回溯、状态压缩 | 中等 | |
1994 | 好子集的数目 | Python | 位运算、数组、数学、动态规划、状态压缩 | 困难 |
1349 | 参加考试的最大学生数 | Python | 位运算、数组、动态规划、状态压缩、矩阵 | 困难 |
0698 | 划分为k个相等的子集 | Python | 位运算、记忆化搜索、数组、动态规划、回溯、状态压缩 | 中等 |
0943 | 最短超级串 | 位运算、数组、字符串、动态规划、状态压缩 | 困难 | |
0691 | 贴纸拼词 | Python | 位运算、数组、字符串、动态规划、回溯、状态压缩 | 困难 |
0982 | 按位与为零的三元组 | Python | 位运算、数组、哈希表 | 困难 |
计数 DP 题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0062 | 不同路径 | Python | 数学、动态规划、组合数学 | 中等 |
0063 | 不同路径 II | Python | 数组、动态规划、矩阵 | 中等 |
0343 | 整数拆分 | Python | 数学、动态规划 | 中等 |
0096 | 不同的二叉搜索树 | Python | 树、二叉搜索树、数学、动态规划、二叉树 | 中等 |
1259 | 不相交的握手 | 数学、动态规划 | 困难 | |
0790 | 多米诺和托米诺平铺 | 动态规划 | 中等 | |
0070 | 爬楼梯 | Python | 记忆化搜索、数学、动态规划 | 简单 |
0746 | 使用最小花费爬楼梯 | Python | 数组、动态规划 | 简单 |
0509 | 斐波那契数 | Python | 递归、记忆化搜索、数学、动态规划 | 简单 |
1137 | 第 N 个泰波那契数 | Python | 记忆化搜索、数学、动态规划 | 简单 |
数位 DP 题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
2376 | 统计特殊整数 | Python | 数学、动态规划 | 困难 |
0357 | 统计各位数字都不同的数字个数 | Python | 数学、动态规划、回溯 | 中等 |
1012 | 至少有 1 位重复的数字 | Python | 数学、动态规划 | 困难 |
0902 | 最大为 N 的数字组合 | Python | 数组、数学、字符串、二分查找、动态规划 | 困难 |
0788 | 旋转数字 | Python | 数学、动态规划 | 中等 |
0600 | 不含连续1的非负整数 | Python | 动态规划 | 困难 |
0233 | 数字 1 的个数 | Python | 递归、数学、动态规划 | 困难 |
2719 | 统计整数数目 | Python | 数学、字符串、动态规划 | 困难 |
0248 | 中心对称数 III | 递归、数组、字符串 | 困难 | |
1088 | 易混淆数 II | 数学、回溯 | 困难 | |
1067 | 范围内的数字计数 | 数学、动态规划 | 困难 | |
1742 | 盒子中小球的最大数量 | Python | 哈希表、数学、计数 | 简单 |
面试题 17.06 | 2出现的次数 | Python | 递归、数学、动态规划 | 困难 |
概率 DP 题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0688 | 骑士在棋盘上的概率 | Python | 动态规划 | 中等 |
0808 | 分汤 | 数学、动态规划、概率与统计 | 中等 | |
0837 | 新 21 点 | 数学、动态规划、滑动窗口、概率与统计 | 中等 | |
1230 | 抛掷硬币 | 数学、动态规划、概率与统计 | 中等 | |
1467 | 两个盒子中球的颜色数相同的概率 | 数组、数学、动态规划、回溯、组合数学、概率与统计 | 困难 | |
1227 | 飞机座位分配概率 | Python | 脑筋急转弯、数学、动态规划、概率与统计 | 中等 |
1377 | T 秒后青蛙的位置 | 树、深度优先搜索、广度优先搜索、图 | 困难 | |
剑指 Offer 60 | n个骰子的点数 | 数学、动态规划、概率与统计 | 中等 |