滑动窗口
文章平均质量分 70
这是滑动窗口的做题笔记
代码小将
一个分享自己学习经历的菜鸟
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
力扣395做题笔记
我们要看当前窗口收集了多少种类,要控制它不能超过当前处理的子问题(require)的数量,否则就是不合规的,因为它应该在处理之后的子问题才考虑。字符都要大于k,我的写法错误地理解为只要有一种大于k的子串就行了。这里利用了一点动态规划的思想,这个字符串都是小写的字符串。那么就说明,最多有26种字符来组合一个字符串。相当于就26种子问题,组合一起就是总问题了。种,每种符合的长度,然后比长短既可以了。原创 2025-05-25 22:01:08 · 525 阅读 · 0 评论 -
力扣992做题笔记
不超过k的子数组数」减去「不超过k-1的子数组数」,本质是通过「前缀和相减」的方式,精准提取出「恰好等于k」的子数组数目。这种方法将复杂的「恰好k」问题转化为更易计算的「不超过k」问题,是滑动窗口算法中常用的技巧。原创 2025-05-19 16:27:17 · 850 阅读 · 0 评论 -
Leetcode134加油站
这意味着我们会少加一些余量,那我们想想,之前余量没少加的时候都到达不了l,现在余量少加了,还能到吗?从中我们可以得出一个结论:看一个点能不能到下一个点,就要用当前的油量减去消耗的量,那么gas[i] - cost[i],就表明这个点到了下一个点之后剩余的油量,如果是负数,说明它走不到下一个点,会在半路熄火。那么它的累加和的意义就是从累加起点到累加终点剩余的油量,如果为负数,那么说明我们当前选取的起点无法到达目前的终点,为正数好理解,还有余量,只要大于等于0,都是可以的。原创 2025-05-18 16:48:18 · 395 阅读 · 0 评论 -
Leetcode76覆盖最小子串
这里是把每一个字符扔到欠债表里面进行结算,如果是target里面的,说明他刚开始是负的,所以我们用是否小于0来判断是否可以对欠债总数debt来进行削减,到0的时候就说明我们要开始尝试收缩窗口了。可是题目要我们求最短啊,我们尝试收缩左边界,收缩的时候要注意,如果收缩会导致欠债那么就不能收缩,只能记住答案,拿去与之前比大小看是否能更新。要判断左边是否可以削减,就要看它的削减会不会导致债务的增加,也就是会不会导致现在的窗口不能完全包含target,所以进行此判断。此时我们发现,不仅不欠债还有了结余可以尝试收缩。原创 2025-05-16 21:02:30 · 506 阅读 · 0 评论 -
Leetcode209做题笔记
3.更新答案,初始化答案为一个很大的值,随后不断和每一次答案比大小,如有更小的答案则更新,没有则维持原来的答案。就是找符合条件的最小窗口,那么让左边一直动,只要区间和大于等于target就可以了,写一个循环加上判断条件。可以利用左右两个指针来进行,右指针增加为扩大窗口,左指针增加,往右移动相当于缩短窗口。此时长度为3, 与刚才的4比较发现比4还要短,那么答案更新为3.如此进行下去,即可求出答案。原创 2025-05-14 21:02:04 · 455 阅读 · 0 评论
分享