Leetcode - Contiguous Array

·2022년 2월 4일
0

Algorithm

목록 보기
19/19
post-thumbnail

Problem

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.

Constraints:

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

Solution

JavaScript

/**
 * @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
};
profile
You only get one life. It's actually your duty to live it as fully as possible.

0개의 댓글