Skip to content

Latest commit

 

History

History
171 lines (162 loc) · 47.9 KB

sliding-window.md

File metadata and controls

171 lines (162 loc) · 47.9 KB

滑动窗口

全部标签

数据结构

数组 矩阵 链表 双向链表 单调栈 队列 单调队列 堆(优先队列) 哈希表 字符串 字符串匹配 二叉树 二叉搜索树 最小生成树 有序集合 拓扑排序 最短路 强连通分量 欧拉回路 双连通分量 并查集 字典树 线段树 树状数组 后缀数组

算法

枚举 递归 分治 回溯 贪心 动态规划 排序 桶排序 计数排序 基数排序 归并排序 快速选择 二分查找 记忆化搜索 深度优先搜索 广度优先搜索 双指针 位运算 前缀和 计数 滑动窗口 状态压缩 哈希函数 滚动哈希 扫描线

其他

数学 数论 几何 博弈 模拟 组合数学 随机化 概率与统计 水塘抽样 拒绝采样 数据库 设计 数据流 脑筋急转弯 交互 迭代器 多线程


题号 标题 题解 标签 难度 力扣
3 无重复字符的最长子串 [✓] 哈希表 字符串 滑动窗口 🟠 🀄️ 🔗
30 串联所有单词的子串 [✓] 哈希表 字符串 滑动窗口 🔴 🀄️ 🔗
76 最小覆盖子串 [✓] 哈希表 字符串 滑动窗口 🔴 🀄️ 🔗
159 至多包含两个不同字符的最长子串 🔒 哈希表 字符串 滑动窗口 🟠 🀄️ 🔗
187 重复的DNA序列 位运算 哈希表 字符串 3+ 🟠 🀄️ 🔗
209 长度最小的子数组 [✓] 数组 二分查找 前缀和 1+ 🟠 🀄️ 🔗
219 存在重复元素 II [✓] 数组 哈希表 滑动窗口 🟢 🀄️ 🔗
220 存在重复元素 III 数组 桶排序 有序集合 2+ 🔴 🀄️ 🔗
239 滑动窗口最大值 [✓] 队列 数组 滑动窗口 2+ 🔴 🀄️ 🔗
340 至多包含 K 个不同字符的最长子串 🔒 哈希表 字符串 滑动窗口 🟠 🀄️ 🔗
395 至少有 K 个重复字符的最长子串 哈希表 字符串 分治 1+ 🟠 🀄️ 🔗
413 等差数列划分 数组 动态规划 滑动窗口 🟠 🀄️ 🔗
424 替换后的最长重复字符 哈希表 字符串 滑动窗口 🟠 🀄️ 🔗
438 找到字符串中所有字母异位词 [✓] 哈希表 字符串 滑动窗口 🟠 🀄️ 🔗
480 滑动窗口中位数 数组 哈希表 滑动窗口 1+ 🔴 🀄️ 🔗
487 最大连续1的个数 II 🔒 数组 动态规划 滑动窗口 🟠 🀄️ 🔗
567 字符串的排列 [✓] 哈希表 双指针 字符串 1+ 🟠 🀄️ 🔗
594 最长和谐子序列 [✓] 数组 哈希表 计数 2+ 🟢 🀄️ 🔗
632 最小区间 [✓] 贪心 数组 哈希表 3+ 🔴 🀄️ 🔗
643 子数组最大平均数 I [✓] 数组 滑动窗口 🟢 🀄️ 🔗
658 找到 K 个最接近的元素 [✓] 数组 双指针 二分查找 3+ 🟠 🀄️ 🔗
683 K 个关闭的灯泡 🔒 树状数组 线段树 队列 5+ 🔴 🀄️ 🔗
713 乘积小于 K 的子数组 数组 二分查找 前缀和 1+ 🟠 🀄️ 🔗
718 最长重复子数组 数组 二分查找 动态规划 3+ 🟠 🀄️ 🔗
727 最小窗口子序列 🔒 字符串 动态规划 滑动窗口 🔴 🀄️ 🔗
837 新 21 点 数学 动态规划 滑动窗口 1+ 🟠 🀄️ 🔗
862 和至少为 K 的最短子数组 [✓] 队列 数组 二分查找 4+ 🔴 🀄️ 🔗
904 水果成篮 数组 哈希表 滑动窗口 🟠 🀄️ 🔗
930 和相同的二元子数组 数组 哈希表 前缀和 1+ 🟠 🀄️ 🔗
978 最长湍流子数组 数组 动态规划 滑动窗口 🟠 🀄️ 🔗
992 K 个不同整数的子数组 数组 哈希表 计数 1+ 🔴 🀄️ 🔗
995 K 连续位的最小翻转次数 位运算 队列 数组 2+ 🔴 🀄️ 🔗
1004 最大连续1的个数 III [✓] 数组 二分查找 前缀和 1+ 🟠 🀄️ 🔗
1031 两个非重叠子数组的最大和 数组 动态规划 滑动窗口 🟠 🀄️ 🔗
1044 最长重复子串 字符串 二分查找 后缀数组 3+ 🔴 🀄️ 🔗
1052 爱生气的书店老板 数组 滑动窗口 🟠 🀄️ 🔗
1100 长度为 K 的无重复字符子串 🔒 哈希表 字符串 滑动窗口 🟠 🀄️ 🔗
1151 最少交换次数来组合所有的 1 🔒 数组 滑动窗口 🟠 🀄️ 🔗
1156 单字符重复子串的最大长度 哈希表 字符串 滑动窗口 🟠 🀄️ 🔗
1176 健身计划评估 🔒 数组 滑动窗口 🟢 🀄️ 🔗
1208 尽可能使字符串相等 字符串 二分查找 前缀和 1+ 🟠 🀄️ 🔗
1234 替换子串得到平衡字符串 字符串 滑动窗口 🟠 🀄️ 🔗
1248 统计「优美子数组」 数组 哈希表 数学 2+ 🟠 🀄️ 🔗
1297 子串的最大出现次数 哈希表 字符串 滑动窗口 🟠 🀄️ 🔗
1343 大小为 K 且平均值大于等于阈值的子数组数目 数组 滑动窗口 🟠 🀄️ 🔗
1358 包含所有三种字符的子字符串数目 哈希表 字符串 滑动窗口 🟠 🀄️ 🔗
1423 可获得的最大点数 数组 前缀和 滑动窗口 🟠 🀄️ 🔗
1425 带限制的子序列和 队列 数组 动态规划 3+ 🔴 🀄️ 🔗
1438 绝对差不超过限制的最长连续子数组 队列 数组 有序集合 3+ 🟠 🀄️ 🔗
1456 定长子串中元音的最大数目 [✓] 字符串 滑动窗口 🟠 🀄️ 🔗
1477 找两个和为目标值且不重叠的子数组 数组 哈希表 二分查找 2+ 🟠 🀄️ 🔗
1493 删掉一个元素以后全为 1 的最长子数组 [✓] 数组 动态规划 滑动窗口 🟠 🀄️ 🔗
1499 满足不等式的最大值 队列 数组 滑动窗口 2+ 🔴 🀄️ 🔗
1610 可见点的最大数目 几何 数组 数学 2+ 🔴 🀄️ 🔗
1652 拆炸弹 [✓] 数组 滑动窗口 🟢 🀄️ 🔗
1658 将 x 减到 0 的最小操作数 数组 哈希表 二分查找 2+ 🟠 🀄️ 🔗
1695 删除子数组的最大得分 数组 哈希表 滑动窗口 🟠 🀄️ 🔗
1703 得到连续 K 个 1 的最少相邻交换次数 贪心 数组 前缀和 1+ 🔴 🀄️ 🔗
1763 最长的美好子字符串 位运算 哈希表 字符串 2+ 🟢 🀄️ 🔗
1838 最高频元素的频数 贪心 数组 二分查找 3+ 🟠 🀄️ 🔗
1839 所有元音按顺序排布的最长子字符串 字符串 滑动窗口 🟠 🀄️ 🔗
1852 每个子数组的数字种类数 🔒 数组 哈希表 滑动窗口 🟠 🀄️ 🔗
1871 跳跃游戏 VII 字符串 动态规划 前缀和 1+ 🟠 🀄️ 🔗
1876 长度为三且各字符不同的子字符串 哈希表 字符串 计数 1+ 🟢 🀄️ 🔗
1888 使二进制字符串字符交替的最少反转次数 贪心 字符串 动态规划 1+ 🟠 🀄️ 🔗
1918 第 K 小的子数组和 🔒 数组 二分查找 滑动窗口 🟠 🀄️ 🔗
1984 学生分数的最小差值 数组 排序 滑动窗口 🟢 🀄️ 🔗
2009 使数组连续的最少操作数 数组 哈希表 二分查找 1+ 🔴 🀄️ 🔗
2024 考试的最大困扰度 字符串 二分查找 前缀和 1+ 🟠 🀄️ 🔗
2090 半径为 k 的子数组平均值 数组 滑动窗口 🟠 🀄️ 🔗
2106 摘水果 数组 二分查找 前缀和 1+ 🔴 🀄️ 🔗
2107 分享 K 个糖果后独特口味的数量 🔒 数组 哈希表 滑动窗口 🟠 🀄️ 🔗
2134 最少交换次数来组合所有的 1 II 数组 滑动窗口 🟠 🀄️ 🔗
2156 查找给定哈希值的子串 字符串 滑动窗口 哈希函数 1+ 🔴 🀄️ 🔗
2260 必须拿起的最小连续卡牌数 [✓] 数组 哈希表 滑动窗口 🟠 🀄️ 🔗
2269 找到一个数字的 K 美丽值 数学 字符串 滑动窗口 🟢 🀄️ 🔗
2302 统计得分小于 K 的子数组数目 数组 二分查找 前缀和 1+ 🔴 🀄️ 🔗
2379 得到 K 个黑块的最少涂色次数 字符串 滑动窗口 🟢 🀄️ 🔗
2398 预算内的最多机器人数目 队列 数组 二分查找 4+ 🔴 🀄️ 🔗
2401 最长优雅子数组 位运算 数组 滑动窗口 🟠 🀄️ 🔗
2411 按位或最大的最小子数组长度 位运算 数组 二分查找 1+ 🟠 🀄️ 🔗
2444 统计定界子数组的数目 队列 数组 滑动窗口 1+ 🔴 🀄️ 🔗
2461 长度为 K 子数组中的最大和 [✓] 数组 哈希表 滑动窗口 🟠 🀄️ 🔗
2516 每种字符至少取 K 个 [✓] 哈希表 字符串 滑动窗口 🟠 🀄️ 🔗
2524 子数组的最大频率分数 🔒 数组 哈希表 数学 1+ 🔴 🀄️ 🔗
2528 最大化城市的最小电量 贪心 队列 数组 3+ 🔴 🀄️ 🔗
2537 统计好子数组的数目 数组 哈希表 滑动窗口 🟠 🀄️ 🔗
2555 两个线段获得的最多奖品 数组 二分查找 滑动窗口 🟠 🀄️ 🔗
2653 滑动子数组的美丽值 数组 哈希表 滑动窗口 🟠 🀄️ 🔗
2730 找到最长的半重复子字符串 字符串 滑动窗口 🟠 🀄️ 🔗
2743 计算没有重复字符的子字符串数量 🔒 哈希表 字符串 滑动窗口 🟠 🀄️ 🔗
2747 统计没有收到请求的服务器数目 数组 哈希表 排序 1+ 🟠 🀄️ 🔗
2760 最长奇偶子数组 数组 滑动窗口 🟢 🀄️ 🔗
2762 不间断子数组 [✓] 队列 数组 有序集合 3+ 🟠 🀄️ 🔗
2779 数组的最大美丽值 [✓] 数组 二分查找 排序 1+ 🟠 🀄️ 🔗
2781 最长合法子字符串的长度 数组 哈希表 字符串 1+ 🔴 🀄️ 🔗
2799 统计完全子数组的数目 数组 哈希表 滑动窗口 🟠 🀄️ 🔗
2831 找出最长等值子数组 数组 哈希表 二分查找 1+ 🟠 🀄️ 🔗
2841 几乎唯一子数组的最大和 数组 哈希表 滑动窗口 🟠 🀄️ 🔗
2875 无限数组的最短子数组 数组 哈希表 前缀和 1+ 🟠 🀄️ 🔗
2902 和带限制的子多重集合的数目 数组 哈希表 动态规划 1+ 🔴 🀄️ 🔗
2904 最短且字典序最小的美丽子字符串 字符串 滑动窗口 🟠 🀄️ 🔗
2932 找出强数对的最大异或值 I 位运算 字典树 数组 2+ 🟢 🀄️ 🔗
2935 找出强数对的最大异或值 II 位运算 字典树 数组 2+ 🔴 🀄️ 🔗
2953 统计完全子字符串 哈希表 字符串 滑动窗口 🔴 🀄️ 🔗
2958 最多 K 个重复元素的最长子数组 数组 哈希表 滑动窗口 🟠 🀄️ 🔗
2962 统计最大元素出现至少 K 次的子数组 数组 滑动窗口 🟠 🀄️ 🔗
2968 执行操作使频率分数最大 数组 二分查找 前缀和 2+ 🔴 🀄️ 🔗
2981 找出出现至少三次的最长特殊子字符串 I 哈希表 字符串 二分查找 2+ 🟠 🀄️ 🔗
2982 找出出现至少三次的最长特殊子字符串 II 哈希表 字符串 二分查找 2+ 🟠 🀄️ 🔗
3013 将数组分成最小总代价的子数组 II 数组 哈希表 滑动窗口 1+ 🔴 🀄️ 🔗
3023 在无限流中寻找模式 I 🔒 数组 字符串匹配 滑动窗口 2+ 🟠 🀄️ 🔗
3037 在无限流中寻找模式 II 🔒 数组 字符串匹配 滑动窗口 2+ 🔴 🀄️ 🔗
3086 拾起 K 个 1 需要的最少行动次数 贪心 数组 前缀和 1+ 🔴 🀄️ 🔗
3090 每个字符最多出现两次的最长子字符串 哈希表 字符串 滑动窗口 🟢 🀄️ 🔗
3095 或值至少 K 的最短子数组 I 位运算 数组 滑动窗口 🟢 🀄️ 🔗
3097 或值至少为 K 的最短子数组 II [✓] 位运算 数组 滑动窗口 🟠 🀄️ 🔗
3134 找出唯一性数组的中位数 数组 哈希表 二分查找 1+ 🔴 🀄️ 🔗
3135 通过添加或删除结尾字符来同化字符串 🔒 字符串 二分查找 动态规划 2+ 🟠 🀄️ 🔗
3191 使二进制数组全部等于 1 的最少操作次数 I 位运算 队列 数组 2+ 🟠 🀄️ 🔗
3206 交替组 I 数组 滑动窗口 🟢 🀄️ 🔗
3208 交替组 II 数组 滑动窗口 🟠 🀄️ 🔗
3234 统计 1 显著的字符串的数量 字符串 枚举 滑动窗口 🟠 🀄️ 🔗
3254 长度为 K 的子数组的能量值 I 数组 滑动窗口 🟠 🀄️ 🔗
3255 长度为 K 的子数组的能量值 II 数组 滑动窗口 🟠 🀄️ 🔗
3258 统计满足 K 约束的子字符串数量 I 字符串 滑动窗口 🟢 🀄️ 🔗
3261 统计满足 K 约束的子字符串数量 II 数组 字符串 二分查找 2+ 🔴 🀄️ 🔗
3297 统计重新排列后包含另一个字符串的子字符串数目 I 哈希表 字符串 滑动窗口 🟠 🀄️ 🔗
3298 统计重新排列后包含另一个字符串的子字符串数目 II 哈希表 字符串 滑动窗口 🔴 🀄️ 🔗
3305 元音辅音字符串计数 I 哈希表 字符串 滑动窗口 🟠 🀄️ 🔗
3306 元音辅音字符串计数 II 哈希表 字符串 滑动窗口 🟠 🀄️ 🔗
3318 计算子数组的 x-sum I [✓] 数组 哈希表 滑动窗口 1+ 🟢 🀄️ 🔗
3321 计算子数组的 x-sum II [✓] 数组 哈希表 滑动窗口 1+ 🔴 🀄️ 🔗
3323 通过插入区间最小化连通组 🔒 数组 二分查找 排序 1+ 🟠 🀄️ 🔗
3325 字符至少出现 K 次的子字符串 I 哈希表 字符串 滑动窗口 🟠 🀄️ 🔗
3329 字符至少出现 K 次的子字符串 II 🔒 哈希表 字符串 滑动窗口 🔴 🀄️ 🔗
LCP 68 美观的花束 数组 滑动窗口 🟠 🀄️
剑指 Offer 48 最长不含重复字符的子字符串 [✓] 哈希表 字符串 滑动窗口 🟠 🀄️
剑指 Offer 59 滑动窗口的最大值 [✓] 队列 数组 滑动窗口 2+ 🔴 🀄️
剑指 Offer II 14 字符串中的变位词 [✓] 哈希表 双指针 字符串 1+ 🟠 🀄️
剑指 Offer II 15 字符串中的所有变位词 [✓] 哈希表 字符串 滑动窗口 🟠 🀄️
剑指 Offer II 16 不含重复字符的最长子字符串 [✓] 哈希表 字符串 滑动窗口 🟠 🀄️
剑指 Offer II 17 含有所有字符的最短字符串 哈希表 字符串 滑动窗口 🔴 🀄️
剑指 Offer II 56 二叉搜索树中两个节点之和 数组 滑动窗口 🟢 🀄️
剑指 Offer II 57 值和下标之差都在给定的范围内 数组 桶排序 有序集合 2+ 🟠 🀄️
剑指 Offer II 8 和大于等于 target 的最短子数组 [✓] 数组 二分查找 前缀和 1+ 🟠 🀄️
剑指 Offer II 9 乘积小于 K 的子数组 数组 滑动窗口 🟠 🀄️
面试题 17.17 多次搜索 字典树 数组 哈希表 3+ 🟠 🀄️
面试题 17.18 最短超串 数组 哈希表 滑动窗口 🟠 🀄️