From ab09e40a2e6fd088acecb10b1bfbea40d4e6644a Mon Sep 17 00:00:00 2001 From: Prad Nukala Date: Fri, 2 Oct 2026 17:19:34 -0400 Subject: [PATCH] =?UTF-8?q?docs(content):=20add=20Max=20Consecutive=20Ones?= =?UTF-8?q?=E2=80=AFIII=20page=20and=20update=20Array=20badge=20count?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../1004-max-consecutive-ones-iii.mdx | 52 +++++++++++++++++++ .../appendix/(1-data-structures)/array.mdx | 2 +- 2 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 apps/docs/content/(01-linear-structures)/sliding-window/1004-max-consecutive-ones-iii.mdx diff --git a/apps/docs/content/(01-linear-structures)/sliding-window/1004-max-consecutive-ones-iii.mdx b/apps/docs/content/(01-linear-structures)/sliding-window/1004-max-consecutive-ones-iii.mdx new file mode 100644 index 0000000..028ddce --- /dev/null +++ b/apps/docs/content/(01-linear-structures)/sliding-window/1004-max-consecutive-ones-iii.mdx @@ -0,0 +1,52 @@ +--- +title: '1004. Max Consecutive Ones III' +description: Given a binary array nums and an integer k, return the maximum number of consecutive 1's in the array if you can flip at most k 0's +icon: dot +topics: + - { name: "Array", slug: "array" } + - { name: "Binary Search", slug: "binary-search" } + - { name: "Sliding Window", slug: "sliding-window" } + - { name: "Prefix Sum", slug: "prefix-sum" } +issue: "https://github.com/prdlk/leetcode/issues/56" +sidebar: + label: 'Max Consecutive Ones III' + badge: 'Medium' +--- + +### Example 1: +- Input: `nums = [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: `nums = [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. + +### Constraints: + +- `1 <= nums.length <= 10^5` +- `nums[i]` is either 0 or 1. +- `0 <= k <= nums.length` + +## Solution + +```py +class Solution: + def longestOnes(self, nums: list[int], k: int) -> int: + left = 0 + cur = 0 + ans = 0 + + for right in range(len(nums)): + if nums[right] == 0: + cur += 1 + while cur > k: + if nums[left] == 0: + cur -= 1 + left += 1 + + ans = max(ans, right - left + 1) + + return ans +``` diff --git a/apps/docs/content/appendix/(1-data-structures)/array.mdx b/apps/docs/content/appendix/(1-data-structures)/array.mdx index aa1a326..84a549e 100644 --- a/apps/docs/content/appendix/(1-data-structures)/array.mdx +++ b/apps/docs/content/appendix/(1-data-structures)/array.mdx @@ -3,7 +3,7 @@ title: "Array" list: "https://leetcode.com/problem-list/array/" icon: list-ordered sidebar: - badge: '47' + badge: '48' --- :::note