Skip to content

525. Contiguous Array

Difficulty Topics

Description

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.

 

Constraints:

  • 1 <= nums.length <= 105
  • nums[i] is either 0 or 1.

Solution

contiguous-array.py
class Solution:
    def findMaxLength(self, nums: List[int]) -> int:
        res = count = 0
        table = {0 : -1}

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

            if count in table:
                res = max(res, i - table[count])
            else:
                table[count] = i

        return res