424. Longest Repeating Character Replacement

(1) 滑动窗口。  most +k 最大,如果比这个值大,需要left++;

(2) 关键是维护一个most的最大值。

class Solution {
public:
    int characterReplacement(string s, int k) {
        
           if(s.size()<=k) return s.size(); 
        
           vector<int> letter(26);

            int l = 0;
            int most = ++letter[s[0] - 'A'];
        
            int res = 1;

            for(int r = 1; r < s.size();r++)
            {
                most = max(most,++letter[s[r] - 'A']);

                if(most + k < r - l + 1) // can't maintain this size of window
                {
                    letter[s[l++]-'A']--;

                }
                res = max(res,r-l+1);
            }


            return res;
    }
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值