最长全1串

题目描述
给你一个由0、1组成的字符串,定义答案为该串中最长的连续1的长度,
现在你有至多K次机会,每次机会可以将串中的某个0改成1,现在问最大的可能答案。

输入描述:
输入第一行两个整数N,K,表示字符串长度和机会次数

第二行输入N个整数,表示该字符串的元素

( 1 <= N <= 300000
, 0 <= K <= N )
输出描述:
输出一行表示答案
示例1
输入
10 2
1 0 0 1 0 1 0 1 0 1
输出
5

 

参考:
思路:双指针

n, k = map(int, input().split())
num = list(map(int, input().split()))
i, j = 0, 0
max_value = 0
while j < n:
    if num[j] == 1:
        j += 1
    elif num[j] == 0 and k > 0:
        k -= 1
        j += 1
    elif k <= 0:
        if num[i] == 0:
            k += 1
            i += 1
        else:
            i += 1
    max_value = max(max_value, j-i)
print(max_value)

 

posted @ 2020-07-27 22:28  Andy_George  阅读(221)  评论(0编辑  收藏  举报