系列问题集合
1.数组
子数组
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 152.乘积最大子数组 | 数组、动态规划 | Medium | 完成 |
| 209.长度最小的子数组 | 数组、双指针、二分查找 | Medium | 完成 |
| 560.和为K的子数组 | 数组、哈希表 | Medium | 完成 |
| 581.最短无序连续子数组 | 数组 | Easy | 完成 |
| 643.子数组最大平均数I | 数组 | Easy | 完成 |
| 718.最长重复子数组 | 数组、哈希表、 二分查找、动态规划 |
Medium | 完成 |
| 974.和可被K整除的子数组 | 数组、哈希表 | Medium | 完成 |
| 978.最长湍流子数组 | 数组、动态规划、Sliding Window | Medium | 完成 |
| 1460.通过翻转子数组使两个数组相等 | 数组 | Easy | 完成 |
| 1493.删掉一个元素以后全为1的最长子数组 | 数组 | Medium | 完成 |
| 1508.子数组和排序后的区间和 | 排序、数组 | Medium | 完成 |
| 1526.形成目标数组的子数组最少增加次数 | 线段树 | Hard | 完成 |
只出现一次的数字
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 136.只出现一次的数字 | 位运算、哈希表 | Easy | 完成 |
| 137.只出现一次的数字II | 位运算 | Medium | 完成 |
| 260.只出现一次的数字III | 位运算 | Medium | 完成 |
数组交集
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 349.两个数组的交集 | 排序、哈希表、双指针、二分查找 | Easy | 完成 |
| 350.两个数组的交集II | 排序、哈希表、双指针、二分查找 | Easy | 完成 |
重复元素
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 217.存在重复元素 | 数组、哈希表 | Easy | 完成 |
| 219.存在重复元素II | 数组、哈希表 | Easy | 完成 |
| 220.存在重复元素III | 排序、Ordered Map | Medium | 完成 |
| 442.数组中重复的数据 | 数组 | Medium | 完成 |
| 448.找到所有数组中消失的数字 | 数组 | Easy | 完成 |
旋转数组
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 81.搜索旋转排序数组II | 数组、二分查找 | Medium | 完成 |
几数之和
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 1.两数之和 | 数组、哈希表 | Easy | 完成 |
| 167.两数之和II-输入有序数组 | 数组、双指针、二分查找 | Easy | 完成 |
| 653.两数之和IV-输入BST | 树 | Easy | 完成 |
| 15.三数之和 | 数组、双指针 | Medium | 完成 |
| 16.最接近的三数之和 | 数组、双指针 | Medium | 完成 |
| 18.四数之和 | 数组、哈希表、双指针 | Medium | 完成 |
| 454.四数相加II | 哈希表、二分查找 | Medium | 完成 |
杨辉三角
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 118.杨辉三角 | 数组 | Easy | 完成 |
| 119.杨辉三角II | 数组 | Easy | 完成 |
2.字符串
回文字符串(高频)(动态规划/中心扩展/马拉车算法)
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 5.最长回文子串 | 字符串、动态规划 | Medium | 完成 |
| 9.回文数 | 数学 | Easy | 完成 |
| 125.验证回文串 | 双指针、字符串 | Easy | 完成 |
| 131.分割回文串 | 回溯算法 | Medium | 完成 |
| 214.最短回文串 | 字符串 | Hard | 完成 |
| 409.最长回文串 | 哈希表 | Easy | 完成 |
| 516.最长回文子序列 | 动态规划 | Medium | 完成 |
| 647.回文子串 | 字符串、动态规划 | Medium | 完成 |
| 680.验证回文字符串Ⅱ | 字符串 | Easy | 完成 |
| 1332.删除回文子序列 | 字符串 | Easy | 完成 |
反转字符串
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 344.反转字符串 | 双指针、字符串 | Easy | 完成 |
| 541.反转字符串II | 字符串 | Easy | 完成 |
| 557.反转字符串中的单词III | 字符串 | Easy | 完成 |
| 345.反转字符串中的元音字母 | 双指针、字符串 | Easy | 完成 |
子串问题
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 3.无重复字符的最长子串 | 哈希表、双指针、字符串 Sliding Window | Medium | 完成 |
| 5.最长回文子串 | 字符串、动态规划 | Medium | 完成 |
| 1513.仅含1的子串数 | 数学、字符串 | Medium | 完成 |
| 696.计数二进制子串 | 字符串 | Easy | 完成 |
子序问题
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 53.最大子序和 | 数组、分治算法、动态规划 | Easy | 完成 |
| 300.最长上升子序列 | 二分查找、动态规划 | Medium | 完成 |
| 392.判断子序列 | 贪心算法、二分查找、动态规划 | Easy | 完成 |
| 583.两个字符串的删除操作 | 字符串 | Medium | 完成 |
| 594.最长和谐子序列 | 哈希表 | Easy | 完成 |
| 646.最长数对链 | 动态规划 | Medium | 完成 |
| 1332.删除回文子序列 | 字符串 | Easy | 完成 |
| 1403.非递增顺序的最小子序列 | 贪心算法、排序 | Easy | 完成 |
回文子序列
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 516.最长回文子序列 | 动态规划 | Medium | 完成 |
| 1143.最长公共子序列 | 动态规划 | Medium | 完成 |
| 1312.让字符串成为回文串的最少插入次数 | 动态规划 | Hard | 完成 |
3.链表
有序链表删除重复元素
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 83.删除排序链表中的重复元素 | 链表 | Easy | 完成 |
| 82.删除排序链表中的重复元素II | 链表 | Medium | 完成 |
4.树
二叉树
路径总和
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 112.路径总和 | 树、深度优先搜索 | Easy | 完成 |
| 113.路径总和II | 树、深度优先搜索 | Medium | 完成 |
| 437.路径总和III | 树 | Easy | 完成 |
多叉树
动态规划
股票问题
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 121.买卖股票的最佳时机 | 数组、动态规划 | Easy | 完成 |
| 122.买卖股票的最佳时机II | 贪心算法、数组 | Easy | 完成 |
| 123.买卖股票的最佳时机III | 数组、动态规划 | Hard | 完成 |
| 188.买卖股票的最佳时机IV | 动态规划 | Hard | 完成 |
| 309.最佳买卖股票时机含冷冻期 | 动态规划 | Medium | 完成 |
| 714.买卖股票的最佳时机含手续费 | 贪心算法、数组、动态规划 | Medium | 完成 |
| 面试题63.股票的最大利润 | 动态规划 | Medium | 完成 |
| 901.股票价格跨度 | 栈 | Medium | 完成 |
| 502.IPO | 堆、贪心算法 | Hard | 完成 |
打家劫舍问题
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 198.打家劫舍 | 动态规划 | Easy | 完成 |
| 213.打家劫舍II | 动态规划 | Medium | 完成 |
| 337.打家劫舍III | 树、深度优先搜索 | Medium | 完成 |
零钱兑换
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 322.零钱兑换 | 动态规划 | Medium | 完成 |
| 518.零钱兑换II | Medium | 完成 | |
| 面试题08.11.硬币 | 动态规划 | Medium | 完成 |
回溯算法
组合问题
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 39.组合总和 | 数组、回溯算法 | Medium | 完成 |
| 40.组合总和II | 数组、回溯算法 | Medium | 完成 |
| 216.组合总和III | 数组、回溯算法 | Medium | 完成 |
| 77.组合 | 回溯算法 | Medium | 完成 |
全排列问题
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 46.全排列 | 回溯算法 | Medium | 完成 |
| 47.全排列II | 回溯算法 | Medium | 完成 |
子集问题
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 78.子集 | 位运算、数组、回溯算法 | Medium | 完成 |
| 90.子集II | 数组、回溯算法 | Medium | 完成 |
八皇后
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 51.N皇后 | 回溯算法 | Hard | 完成 |
| 52.N皇后II | 回溯算法 | Hard | 完成 |
其他
Top K问题
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 703.数据流中的第K大元素 | 堆 | Easy | 完成 |
| 215.数组中的第K个最大元素 | 堆、分治算法 | Medium | 完成 |
| 347.前K个高频元素 | 堆、哈希表 | Medium | 完成 |
| 378.有序矩阵中第K小的元素 | 堆、二分查找 | Medium | 完成 |
| 面试题17.09.第k个数 | 堆、队列、数学 | Medium | 完成 |
| 面试题17.14.最小K个数 | 堆、排序、分治算法 | Medium | 完成 |
博弈问题
石子游戏
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 877.石子游戏 | 极小化极大、数学、动态规划 | Medium | 完成 |
| 1140.石子游戏II | 动态规划 | Medium | 完成 |
| 1406 | |||
| 1510.石子游戏IV | 动态规划 | Hard | 完成 |
| 1563.石子游戏V | 动态规划 | Hard | 完成 |
| 1686.石子游戏VI | 贪心算法 | Medium | 完成 |
| 1690.石子游戏VII | 动态规划 | Medium | 完成 |
| 2029.石子游戏IX | 贪心、数组、数学、计数、博弈 | Medium | 完成 |
Nim游戏-极小化极大
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 292.Nim游戏 | 脑筋急转弯、极小化极大 | Easy | 完成 |
| 486.预测赢家 | 极小化极大、动态规划 | Medium | 完成 |
跳跃游戏系列
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 45.跳跃游戏II | 贪心算法、数组 | Hard | 完成 |
| 55.跳跃游戏 | 贪心算法、数组 | Medium | 完成 |
| 403.青蛙过河 | 动态规划 | Hard | 完成 |
| 1306.跳跃游戏III | 广度优先搜索、图 | Medium | 完成 |
| 1340.跳跃游戏V | 动态规划 | Hard | 完成 |
| 1654.到家的最少跳跃次数 | 广度优先搜索、动态规划 | Medium | 完成 |
| 1696.跳跃游戏VI | Medium | 完成 | |
| 1871.跳跃游戏VII | 贪心算法、广度优先搜索、 Line Sweep |
Medium | 完成 |
灯泡问题
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 319.灯泡开关 | 脑筋急转弯、数学 | Medium | 完成 |
| 672.灯泡开关Ⅱ | 位运算、深度优先搜索、广度优先搜索、数学 | Medium | 完成 |
| 1375.灯泡开关III | 数组 | Medium | 完成 |
| 1529.灯泡开关IV | 字符串 | Medium | 完成 |
单调栈
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 42.接雨水 | 栈、数组、双指针 | Hard | 完成 |
| 84.柱状图中最大的矩形 | 栈、数组 | Hard | 完成 |
| 85.最大矩形 | 栈、数组、哈希表、动态规划 | Hard | 完成 |
| 316.去除重复字母 | 栈、贪心算法 | Hard | 完成 |
| 402.移掉K位数字 | 栈、贪心算法 | Medium | 完成 |
| 496.下一个更大元素I | 栈 | Easy | 完成 |
| 503.下一个更大元素II | 栈 | Medium | 完成 |
| 739.每日温度 | 栈、哈希表 | Medium | 完成 |
| 901.股票价格跨度 | 栈 | Medium | 完成 |
| 962.最大宽度坡 | 数组 | Medium | 完成 |
| 1081.不同字符的最小子序列 | 字符串 | Medium | 完成 |
多源广度优先搜索
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 994.腐烂的橘子 | 广度优先搜索 | Medium | 完成 |
| 1162.地图分析 | 广度优先搜索、图 | Medium | 完成 |
| 542.01矩阵 | 深度优先搜索、广度优先搜索 | Medium | 完成 |
岛屿问题
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 200.岛屿数量 | 深度优先搜索、广度优先搜索、并查集 | Medium | 完成 |
| 463.岛屿的周长 | 哈希表 | Easy | 完成 |
| 695.岛屿的最大面积 | 深度优先搜索、数组 | Medium | 完成 |
| 994.腐烂的橘子 | 广度优先搜索 | Medium | 完成 |
| 1020.飞地的数量 | 深度优先搜索 | Medium | 完成 |
| 1254.统计封闭岛屿的数目 | 深度优先搜索 | Medium | 完成 |
图-拓扑排序
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 207.课程表 | 深度优先搜索、 广度优先搜索、图、拓扑排序 |
Medium | 完成 |
| 210.课程表II | 深度优先搜索、 广度优先搜索、图、拓扑排序 |
Medium | 完成 |
图-欧拉回路 / 欧拉通路
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 332.重新安排行程 | 深度优先搜索、图 | Medium | 完成 |
| 753 |
二分查找-最大化最小值、最小化最大值
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 410.分割数组的最大值 | 二分查找、动态规划 | Hard | 完成 |
| 875.爱吃香蕉的珂珂 | 二分查找 | Medium | 完成 |
| 1011.在D天内送达包裹的能力 | 数组、二分查找 | Medium | 完成 |
| 1283.使结果不超过阈值的最小除数 | 二分查找 | Medium | 完成 |
| 1482.制作m束花所需的最少天数 | 数组、二分查找 | Medium | 完成 |
| 1552.两球之间的磁力 | 数组、二分查找 | Medium | 完成 |
| 1760.袋子里最少数目的球 | 堆、二分查找 | Medium | 完成 |
| 1870.准时到达的列车最小时速 | 数学、二分查找 | Medium | 完成 |
| 2064.分配给商店的最多商品的最小值 | 数组、二分查找 | Medium | 完成 |
| 2187.完成旅途的最少时间 | 数组、二分查找 | Medium | 完成 |
| 2226.每个小孩最多能分到多少糖果 | 数组、二分查找 | Medium | 完成 |
| LCP12.小张刷题计划 | 数组、二分查找 | Medium | 完成 |
滑动窗口
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 3.无重复字符的最长子串 | 哈希表、双指针、字符串 Sliding Window |
Medium | 完成 |
| 30.串联所有单词的子串 | 哈希表、双指针、字符串 | Hard | 完成 |
| 76.最小覆盖子串 | 哈希表、双指针、字符串、 Sliding Window |
Hard | 完成 |
| 159 | |||
| 209.长度最小的子数组 | 数组、双指针、二分查找 | Medium | 完成 |
| 239.滑动窗口最大值 | 堆、Sliding Window | Hard | 完成 |
| 340 | |||
| 438.找到字符串中所有字母异位词 | 哈希表 | Medium | 完成 |
| 567.字符串的排列 | 双指针、Sliding Window | Medium | 完成 |
| 632.最小区间 | 贪心、数组、哈希表、排序、 滑动窗口、堆(优先队列) | Hard | 完成 |
| 727 | |||
| 992.K个不同整数的子数组 | 哈希表、双指针、Sliding Window | Hard | 完成 |
| 1004.最大连续1的个数III | 双指针、Sliding Window | Medium | 完成 |
| 1052.爱生气的书店老板 | 数组、Sliding Window | Medium | 完成 |
区间问题
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 56.合并区间 | 排序、数组 | Medium | 完成 |
| 57.插入区间 | 排序、数组 | Hard | 完成 |
| 435.无重叠区间 | 贪心算法 | Medium | 完成 |
| 452.用最少数量的箭引爆气球 | 贪心算法、排序 | Medium | 完成 |
| 757.设置交集大小至少为2 | 贪心、数组、排序 | Hard | 完成 |
| 986.区间列表的交集 | 双指针 | Medium | 完成 |
| 1024.视频拼接 | 动态规划 | Medium | 完成 |
| 1235.规划兼职工作 | 排序、二分查找、动态规划 | Hard | 完成 |
| 1288.删除被覆盖区间 | 贪心算法、排序、Line Sweep | Medium | 完成 |
最大矩形面积问题
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 84.柱状图中最大的矩形 | 栈、数组 | Hard | 完成 |
| 85.最大矩形 | 栈、数组、哈希表、动态规划 | Hard | 完成 |
| 221.最大正方形 | 动态规划 | Medium | 完成 |
| 1139.最大的以1为边界的正方形 | 数组、动态规划、矩阵 | Medium | 完成 |
| 1277.统计全为1的正方形子矩阵 | 数组、动态规划、矩阵 | Medium | 完成 |
| 1504.统计全1子矩形 | 栈、数组、动态规划、矩阵、单调栈 | Medium | 完成 |
| 1727.重新排列后的最大子矩阵 | 贪心算法、排序 | Medium | 完成 |
连续数组
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 659.分割数组为连续子序列 | 堆、贪心算法 | Medium | 完成 |
| 846.一手顺子 | Ordered Map | Medium | 完成 |
| 1296.划分数组为连续数字的集合 | 贪心算法、数组 | Medium | 完成 |
子数组最大值
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 53.最大子序和 | 数组、分治算法、动态规划 | Easy | 完成 |
| 918.环形子数组的最大和 | 数组 | Medium | 完成 |
| 1186.删除一次得到子数组最大和 | 动态规划 | Medium | 完成 |
| 1191.K次串联后最大子数组之和 | 动态规划 | Medium | 完成 |
首尾选择问题
| Title | Tag | 难度 | 完成情况 |
|---|---|---|---|
| 877.石子游戏 | 极小化极大、数学、动态规划 | Medium | 完成 |
| 1690.石子游戏VII | 动态规划 | Medium | 完成 |
| 1770.执行乘法运算的最大分数 | 动态规划 | Medium | 完成 |