最长全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)