1 | 给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换 k 次。在执行上述操作后,找到包含重复字母的最长子串的长度。 |
滑动窗口+哈希表
利用滑动窗口维护最大值,利用哈希表统计在滑动窗口内的字母的种类和数量
左边界 $l$ 不动滑动窗口一直扩展右边界 $r$ 直至
- 如果滑动窗口中的出现次数最多元素的数量 $num_{mode}$,使得$num_{mode}+k<r-l$,需要左边界向右移动一个位置;
- 否则继续右移右边界 $r$
- 在窗口变化的过程中保证窗口的大小不缩小,最终窗口的大小就是结果
1 | class Solution { |
参考文献
官方题解
1 | class Solution { |