Contiguous Array
Given a binary array nums
, return the maximum length of a contiguous subarray with an equal number of 0
and 1
.
Input: nums = [0,1]
Output: 2
Explanation: [0, 1] is the longest contiguous subarray with an equal number of 0 and 1.
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.
1 <= nums.length <= 10⁵
nums[i]
is either 0
or 1
./**
* @param {number[]} nums
* @return {number}
*/
var findMaxLength = function(nums) {
const numHash = {}
let count = 0,
longestLength = 0
for(let i = 0; i < nums.length; i++) {
if(nums[i] === 0) count--
else count++
if (count === 0) longestLength = i + 1
if(count in numHash) {
longestLength = Math.max(longestLength, i - numHash[count])
} else {
numHash[count] = i
}
}
return longestLength
};