最长连续1


Submit solution

Points: 300
Time limit: 1.0s
Memory limit: 4M

Author:
Problem type
Allowed languages
C, C++

leetcode 1004

给定一个二进制数组 nums(只包含 0 和 1)和一个整数 k,
你最多可以将 k 个 0 翻转成 1。
请返回翻转最多 k 个 0 之后,数组中连续 1 的最大个数。

第一行输入一个正数n
第二行输入n个整数
第二行输入一个整数k

输出反转k个0后,字符串里面1的最大个数。

示例 1:
11
1 1 1 0 0 0 1 1 1 1 0
2

输出:

6
解释:

可以将两个 0 翻转成 1,变成:
[1,1,1,0,0,1,1,1,1,1,1]
粗体的数字是被翻转的 0。
最长的连续 1 子数组长度是 6。

示例 2:
19
0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 1 1 1 1
3

输出:

10
解释:

可以将三个 0 翻转成 1,变成:
[0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1]
粗体的数字是被翻转的 0。
最长的连续 1 子数组长度是 10。

约束条件:

\(1 \le nums.length \le 10⁵\)
nums[i] 仅为 0 或 1
\(0 \le k \le nums.length\)


Comments

There are no comments at the moment.