剑指 Offer II 011. 0 和 1 个数相同的子数组

83 阅读1分钟

剑指 Offer II 011. 0 和 1 个数相同的子数组

var findMaxLength = function (nums) {
  var maxLen = 0;
  var map = new Map();
  var key = 0;
  map.set(key, -1);
  for (var i = 0; i < nums.length; i++) {
    var num = nums[i];
    if (num == 1) {
      key++;
    } else {
      key--;
    }
    if (map.has(key)) {
      var prevIndex = map.get(key);
      maxLen = Math.max(maxLen, i - prevIndex);
    } else {
      map.set(key, i);
    }
  }
  return maxLen;
};
console.log(findMaxLength([0, 1, 0, 1, 1, 0, 0, 1]));