马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
今天的题目:
给定一个由若干 0 和 1 组成的数组 A,我们最多可以将 k 个值从 0 变成 1 。
返回仅包含 1 的最长连续子数组的长度。
示例 1:
输入:A = [1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0],k = 2
输出:6
解释:[1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1]
粗体数字从 0 变为 1,最长的子数组长度为 6。 示例 2:
输入:A = [0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1],k = 3
输出:10
解释:[0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1]
粗体数字从 0 变为 1,最长的子数组长度为 10。
 欢迎大家一起答题! 
- def fun308(A, k):
- res = [-1]+[i for i in range(len(A)) if not A[i]]+[len(A)]
- if len(res)-k-2 <= 0: return len(A)
- return max([max(res[i+k]-res[i-1]-1,0) for i in range(1, len(res)-k)])
复制代码
|