力扣题单,持续更新
滑动窗口
模板参考:Here is a 10-line template that can solve most ‘substring’ problems - Minimum Window Substring - LeetCode
普通滑窗
LCR 017. 最小覆盖子串 - 力扣(LeetCode)
面试题 17.18. 最短超串 - 力扣(LeetCode)
567. 字符串的排列 - 力扣(LeetCode)
3. 无重复字符的最长子串 - 力扣(LeetCode)
排除不可能位置+滑动窗口or分治
2953. 统计完全子字符串 - 力扣(LeetCode)
395. 至少有 K 个重复字符的最长子串 - 力扣(LeetCode)
1763. 最长的美好子字符串 - 力扣(LeetCode)
159. 至多包含两个不同字符的最长子串 - 力扣(LeetCode)
定长滑动窗口
1456. 定长子串中元音的最大数目 - 力扣(LeetCode)
双指针
167. 两数之和 II - 输入有序数组 - 力扣(LeetCode)
15. 三数之和 - 力扣(LeetCode)
18. 四数之和 - 力扣(LeetCode)
611. 有效三角形的个数 - 力扣(LeetCode)
16. 最接近的三数之和 - 力扣(LeetCode)
2824. 统计和小于目标的下标对数目 - 力扣(LeetCode)
缩减搜索范围题单:
240. 搜索二维矩阵 II - 力扣(LeetCode)
11. 盛最多水的容器 - 力扣(LeetCode)
贪心
硬币构造
1798. 你能构造出连续值的最大数目 - 力扣(LeetCode)
2952. 需要添加的硬币的最小数量 - 力扣(LeetCode)
贪心+优先级队列
871. 最低加油次数 - 力扣(LeetCode)
贡献法
517. 超级洗衣机 - 力扣(LeetCode)
中位数贪心
100123. 执行操作使频率分数最大 - 力扣(LeetCode)
2033. 获取单值网格的最小操作数 - 力扣(LeetCode)
2448. 使数组相等的最小开销 - 力扣(LeetCode)
2607. 使子数组元素和相等 - 力扣(LeetCode)
1703. 得到连续 K 个 1 的最少相邻交换次数 - 力扣(LeetCode)
图
龟兔赛跑算法(Floyd判圈算法)
141. 环形链表 - 力扣(LeetCode)
142. 环形链表 II - 力扣(LeetCode)
287. 寻找重复数 - 力扣(LeetCode)
二分图
886. 可能的二分法 - 力扣(LeetCode)(染色法模板、并查集)
最短路
2959. 关闭分部的可行集合数目 - 力扣(LeetCode)
特殊技巧
贡献法
979. 在二叉树中分配硬币 - 力扣(LeetCode)
2477. 到达首都的最少油耗 - 力扣(LeetCode)
891. 子序列宽度之和 - 力扣(LeetCode)
907. 子数组的最小值之和 - 力扣(LeetCode)
1856. 子数组最小乘积的最大值 - 力扣(LeetCode)
2104. 子数组范围和 - 力扣(LeetCode)
2681. 英雄的力量 - 力扣(LeetCode)(注意避免重复计算的技巧)
2281. 巫师的总力量和 - 力扣(LeetCode)(前缀和的前缀和)
动态规划
区间规划
通用解法:python weightedIntervalScheduling 问题
2008. 出租车的最大盈利 - 力扣(LeetCode)
1235. 规划兼职工作 - 力扣(LeetCode)
1751. 最多可以参加的会议数目 II - 力扣(LeetCode)
2830. 销售利润最大化 - 力扣(LeetCode)
435. 无重叠区间 - 力扣(LeetCode)
状态压缩DP
2305. 公平分发饼干 - 力扣(LeetCode)
1349. 参加考试的最大学生数 - 力扣(LeetCode)
1986. 完成任务的最少工作时间段 - 力扣(LeetCode)(也可以回溯)
1494. 并行课程 II - 力扣(LeetCode)
1655. 分配重复整数 - 力扣(LeetCode)
2397. 被列覆盖的最多行数 - 力扣(LeetCode)(二进制枚举)
一般性规划
313. 超级丑数 - 力扣(LeetCode)
数组
前缀和
2132. 用邮票贴满网格图 - 力扣(LeetCode)(二维前缀和和二维差分)
分治
215. 数组中的第K个最大元素 - 力扣(LeetCode)(快速选择模板)