525. Contiguous Array

Difficulty:
Related Topics:
Similar Questions:

Problem

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:

Solution

/**
 * @param {number[]} nums
 * @return {number}
 */
var findMaxLength = function(nums) {
    var map = {};
    var count = 0;
    var max = 0;
    map[0] = -1;
    for (var i = 0; i < nums.length; i++) {
        count += (nums[i] === 1 ? 1 : -1);
        if (map[count] !== undefined) {
            max = Math.max(max, i - map[count])
        } else {
            map[count] = i;
        }
    }
    return max;
};

Explain:

nope.

Complexity: