1004. Max Consecutive Ones III
Given an array A
of 0s and 1s, we may change up to K
values from 0 to 1.
Return the length of the longest (contiguous) subarray that contains only 1s.
Example 1:
Input: A = [1,1,1,0,0,0,1,1,1,1,0], K = 2
Output: 6
Explanation:
[1,1,1,0,0, _ **1** ,1,1,1,1, **1**_ ]
Bolded numbers were flipped from 0 to 1. The longest subarray is underlined.
Example 2:
Input: A = [0,0,1,1,0,0,1,1,1,0,1,1,0,0,0,1,1,1,1], K = 3
Output: 10
Explanation:
[0,0, _1,1, **1** , **1** ,1,1,1, **1** ,1,1_,0,0,0,1,1,1,1]
Bolded numbers were flipped from 0 to 1. The longest subarray is underlined.
Note:
1 <= A.length <= 20000
0 <= K <= A.length
A[i]
is0
or1
# @lc code=start
using LeetCode
function longest_ones(A::Vector{Int}, K::Int)
l = r = 1
len = length(A)
cnt = res = 0
while r <= len
(A[r] == 0) && (cnt += 1)
r += 1
while cnt > K
(A[l] == 0) && (cnt -= 1)
l += 1
end
res = max(res, r - l)
end
return res
end
# @lc code=end
longest_ones (generic function with 1 method)
This page was generated using DemoCards.jl and Literate.jl.