text: /**
   * Max Contiguous Array with Equal Number of 0 and 1
   *
   * Given a binary array, find the maximum length of a contiguous subarray with equal number of 0 and 1.
   *
   * Example 1:
   *
   * Input: [0,1]
   * Output: 2
   *
   * Explanation: [0, 1] is the longest contiguous subarray with equal number of 0 and 1.
   *
   * Example 2:
   *
   * Input: [0,1,0]
   * Output: 2
   *
   * Explanation: [0, 1] (or [1, 0]) is a longest contiguous subarray with equal number of 0 and 1.
   *
   * Note: The length of the given binary array will not exceed 50,000.
   */
  
  /**
   * @param {number[]} nums
   * @return {number}
   */
  const findMaxLength = nums => {
    const map = new Map([[0, -1]]);
  
    let result = 0;
    let sum = 0;
  
    for (let i = 0; i < nums.length; i++) {
      sum += nums[i] === 1 ? 1 : -1;
  
      if (map.has(sum)) {
        result = Math.max(result, i - map.get(sum));
      } else {
        map.set(sum, i);
      }
    }
  
    return result;
  };
  
  export { findMaxLength };
  