Skip to content
prdlk
Esc
↑↓navigate↵open⌘Jpreview
On this page

525. Contiguous Array

Given a binary array nums, return the maximum length of a contiguous subarray with an equal number of 0 and 1

Example 1:

  • Input: nums = [0,1]
  • Output: 2
  • Explanation: [0, 1] is the longest contiguous subarray with an equal number of 0 and 1.

Example 2:

  • Input: nums = [0,1,0]
  • Output: 2
  • Explanation: [0, 1] (or [1, 0]) is a longest contiguous subarray with equal number of 0 and 1.

Example 3:

  • Input: nums = [0,1,1,1,1,1,0,0,0]
  • Output: 6
  • Explanation: [1,1,1,0,0,0] is the longest contiguous subarray with equal number of 0 and 1.

Constraints:

  • 1 <= nums.length <= 10^5
  • nums[i] is either 0 or 1.

Solution

class Solution:
    def findMaxLength(self, nums: List[int]) -> int:
        map = {0: -1}
        count = 0
        longest = 0

        for i, num in enumerate(nums):
            count += 1 if num == 1 else -1

            if count in map:
                longest = max(longest, i - map[count])
            else:
                map[count] = i

        return longest

Last updated on October 2, 2026

Was this page helpful?