题解 | 最长全1串

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNext()) { // 注意 while 处理多个 case
            int a = in.nextInt();
            int b = in.nextInt();
            in.nextLine();
            //System.out.println("a:" + a + " b:" + b);
            String line = in.nextLine();
            String[] arr = line.split(" ", -1);
            int[] nums = new int[arr.length];
            for (int i=0; i<nums.length; i++) {
                nums[i] = Integer.valueOf(arr[i]);
            }
            int res = process(nums, a, b);
            System.out.println(res);
        }
    }


    private static int process(int[] nums, int n, int k) {
        //System.out.println(Arrays.toString(nums));
        int start = 0;
        int end = 0;
        int max = 0;
       // System.out.println(nums);
        while (end < nums.length) {
            if (nums[end] == 0) {
                k--;
            }
            while (k < 0) {
                if (nums[start] == 0) {
                    k++;
                }
                start++;
            }
            max = Math.max(max, end - start + 1);
            end++;
        }
        return max;
    }
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务