LeetCode 2024. 考试的最大困扰度*

具体思想:

我人傻了,一个简单的滑动窗口,硬是整成了前缀和+滑动窗口,纯纯脱了裤子放屁;

分类两个序列,直接统计左右两区间的满足改动要求的最大区间即可;

具体代码:

1.前缀和+滑动窗口:

class Solution {
public:
    int findscoope(vector<int>& vec,int k){
        int l=0;
        int r=1;
        int maxn=0;
        while(r<vec.size()){
            if(vec[r]-vec[l]<=k){
                while(r<vec.size()&&vec[r]-vec[l]<=k){
                    r++;
                }
                maxn=max(r-l-1,maxn);
            }else{
                l++;
            }
        }
        return maxn;
    }

    int maxConsecutiveAnswers(string answerKey, int k) {
        int n=answerKey.size();
        vector<int>findone(n+1,0);
        vector<int>findzero(n+1,0);
        int index=1;
        for(auto ch:answerKey){
            if(ch=='T'){
                findzero[index]=findzero[index-1];
                findone[index]=findone[index-1]+1;
            }else{
                findzero[index]=findzero[index-1]+1;
                findone[index]=findone[index-1];
            }
            index++;
        }
        return max(findscoope(findzero, k),findscoope(findone, k));
    }
};

2.滑动窗口:

class Solution {
public:
    int findscoope(string& vec,int k,char ch){
        int l=0;
        int r=0;
        int maxn=0;
        int cnt=0;
        while(r<vec.size()){
            if(vec[r]==ch)
                cnt++;
            while(cnt>k){
                if(vec[l]==ch)
                    cnt--;
                l++;
            }
            maxn=max(maxn,r-l+1);
            r++;
        }
        return maxn;
    }

    int maxConsecutiveAnswers(string answerKey, int k) {
        return max(findscoope(answerKey,k,'T'),findscoope(answerKey,k,'F'));
    }
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值