首页 > 试题广场 >

最长全1串

[编程题]最长全1串
  • 热度指数:6340 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 128M,其他语言256M
  • 算法知识视频讲解
给你一个 01 字符串,定义答案为该串中最长的连续 的长度,现在你有至多 k 次机会,每次机会可以将串中的某个 改成 ,现在问最大的可能答案

数据范围:字符串长度满足  ,保证输入的字符串只包含 0 和 1 ,

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

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


输出描述:
输出一行表示答案
示例1

输入

10 2 
1 0 0 1 0 1 0 1 0 1

输出

5
示例2

输入

10 5
1 0 0 1 0 1 0 1 0 1

输出

10
头像 mothx
发表于 2021-04-03 04:52:47
原题链接 题目描述: 给你一个01字符串,定义答案=该串中最长的连续1的长度,现在你有至多K次机会,每次机会可以将串中的某个0改成1,现在问最大的可能答案 输入描述: 输入第一行两个整数N,K,表示字符串长度和机会次数(1 <= N <= 300000, 0 <= K <= 展开全文
头像 乐观的共享单车人最喜欢春天
发表于 2023-09-13 17:36:50
n,k=list(map(int,input().split())) l=list(map(int,input().split())) if l.count(1)==0: # 全部为0的场景 print(k) elif l.count(0)==0: # 全部为1的场景 print(n 展开全文
头像 见面说Hello
发表于 2022-05-13 15:33:19
//采用队列,遍历str,求出队列的最长长度即可 import java.util.*; public class Main { public static void main (String[] args) { Scanner scanner = new Scanner(System. 展开全文
头像 fred-coder
发表于 2021-10-29 00:31:13
根据题意,求解最长全1串,可利用双指针方式,通过计数器计算区间内0的个数,若超过指定值,则移动左指针,最终长度为 r - l + 1 from collections import defaultdict n, k = map(int, input().strip().split()) data = 展开全文
头像 laglangyue
发表于 2020-06-20 23:24:04
本题折磨了很久,写了三种方法 queue入队,保证队列中刚好k个-1:60%,写的太乱就不放了 把连续的0和1合并,组成一个正负相间的数组,见注释部分的代码:80% 双指针:参考评论区大佬:未注释部分package org.niuke.solution80; import java.util 展开全文
头像 17c89
发表于 2024-01-20 11:15:07
import java.util.Scanner; public class Main { private static int n; private static int k; private static int[] nums; private static i 展开全文