一二三四五 上山打老虎

NC204370-牛牛的木板

题目链接:https://ac.nowcoder.com/acm/problem/204370

思路:双指针模板题 对每个l 找到合适的r,记录最大区间值即可

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param n int 
     * @param m int 
     * @param a intvector 
     * @return int
     */
    int solve(int n, int m, vector<int>& a) {
        // write code here
        int ans=0;
        int l=0,r=-1;
        int res=0;
        for(;l<n&&r<n;){
            while(res<=m&&r<n){
                r++;
                if(a[r]==0)res++;
                if(res<=m&&r<n)ans=max(ans,(r-l+1));
            }
            if(a[l]==0)res--;
            l++;
        }
        return ans;
    }
};

posted @ 2021-01-26 22:21  黒川川  阅读(67)  评论(0)    收藏  举报