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
0and1.
Example 2:
- Input:
nums = [0,1,0] - Output:
2 - Explanation: [0, 1] (or [1, 0]) is a longest contiguous subarray with equal number of
0and1.
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 of0and1.
Constraints:
1 <= nums.length <= 10^5nums[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