# 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.&#x20;

**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. `1 <= A.length <= 20000`
2. `0 <= K <= A.length`
3. `A[i]` is `0` or `1`&#x20;

```cpp
// 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;
}
```

{% content-ref url="209.-minimum-size-subarray-sum" %}
[209.-minimum-size-subarray-sum](209.-minimum-size-subarray-sum)
{% endcontent-ref %}

{% content-ref url="862.-shortest-subarray-with-sum-at-least-k" %}
[862.-shortest-subarray-with-sum-at-least-k](862.-shortest-subarray-with-sum-at-least-k)
{% endcontent-ref %}

{% content-ref url="904.-fruit-into-baskets" %}
[904.-fruit-into-baskets](904.-fruit-into-baskets)
{% endcontent-ref %}

{% content-ref url="930.-binary-subarrays-with-sum" %}
[930.-binary-subarrays-with-sum](930.-binary-subarrays-with-sum)
{% endcontent-ref %}

{% content-ref url="992.-subarrays-with-k-different-integers-1" %}
[992.-subarrays-with-k-different-integers-1](992.-subarrays-with-k-different-integers-1)
{% endcontent-ref %}

{% content-ref url="1234.-replace-the-substring-for-balanced-string" %}
[1234.-replace-the-substring-for-balanced-string](1234.-replace-the-substring-for-balanced-string)
{% endcontent-ref %}

{% content-ref url="1248.-count-number-of-nice-subarrays" %}
[1248.-count-number-of-nice-subarrays](1248.-count-number-of-nice-subarrays)
{% endcontent-ref %}
