> For the complete documentation index, see [llms.txt](https://jimmylin1991.gitbook.io/practice-of-algorithm-problems/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://jimmylin1991.gitbook.io/practice-of-algorithm-problems/array/1004.-max-consecutive-ones-iii.md).

# 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="/pages/-LeUTiHY8u8EMtZGWvN4" %}
[209. Minimum Size Subarray Sum](/practice-of-algorithm-problems/array/209.-minimum-size-subarray-sum.md)
{% endcontent-ref %}

{% content-ref url="/pages/-Lxmevp4GOei\_ALhfwhc" %}
[862. Shortest Subarray with Sum at Least K](/practice-of-algorithm-problems/array/862.-shortest-subarray-with-sum-at-least-k.md)
{% endcontent-ref %}

{% content-ref url="/pages/-L\_YSxJSD-XLoWTD-ruw" %}
[904. Fruit Into Baskets](/practice-of-algorithm-problems/array/904.-fruit-into-baskets.md)
{% endcontent-ref %}

{% content-ref url="/pages/-Lxn3dG-k8HnvS\_hYuNw" %}
[930. Binary Subarrays With Sum](/practice-of-algorithm-problems/array/930.-binary-subarrays-with-sum.md)
{% endcontent-ref %}

{% content-ref url="/pages/-LpKFjR7YRq6cmyeG5Wi" %}
[992. Subarrays with K Different Integers](/practice-of-algorithm-problems/array/992.-subarrays-with-k-different-integers-1.md)
{% endcontent-ref %}

{% content-ref url="/pages/-LxnBiKIvcYpFbbPAqCh" %}
[1234. Replace the Substring for Balanced String](/practice-of-algorithm-problems/array/1234.-replace-the-substring-for-balanced-string.md)
{% endcontent-ref %}

{% content-ref url="/pages/-LxnDHnap7s7TSAU9Q0w" %}
[1248. Count Number of Nice Subarrays](/practice-of-algorithm-problems/array/1248.-count-number-of-nice-subarrays.md)
{% endcontent-ref %}
