1004. Max Consecutive Ones III
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.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.// Sliding window
int longestOnes(vector<int>& A, int K) { // time: O(n); space: O(1)
int res = 0, zero_cnt = 0, begin = 0, end = 0;
while (end < A.size()) {
if (A[end++] == 0) ++zero_cnt;
if (zero_cnt > K && A[begin++] == 0) --zero_cnt;
res = max(res, end - begin);
}
return res;
}Last updated