力扣-滑动窗口问题

1.76. 最小覆盖子串,两个map,滑动窗口,left移动条件是匹配计数=s1的map.size()

2.567. 字符串的排列,看似和上个类似,但是移动条件,很神奇

3.424. 替换后的最长重复字符,这个挺难的,将问题转换为窗口内除了出现次数最多的字符外,其他的字符出现次数不能多于k,这个就是left缩小的条件!

4.1208. 尽可能使字符串相等,这个我迷惑了,我一直以为答案的更新只有在left移动的时候才更新,但是实际上right移动的时候也可以更新,也就是在外层while循环里也可以更新啊!

5.1004. 最大连续1的个数 III,和424题非常相似,且和1208都是一样,每次更新right时都检查新的ans,不是在检查更新left时更新ans,这个模板非常重要。

6.159.最多有两个不同字符的最长子串,滑窗结合哈希表,移动left的判断条件是hash表的size,同样哈希表也可以进行erase删除掉键,减小size。

7.713. 乘积小于K的子数组,新技巧,ans+=right-left;可以解决“最多”的问题,例如992题将恰好k个转换为最多k个的问题!

8.904. 水果成篮,挺简单的,没什么问题。窗口内最多包含两个不同的数,求最大的窗口长度。

 

posted @ 2020-12-08 10:20  lypbendlf  阅读(183)  评论(0编辑  收藏  举报