我的js算法爬坑之旅-两个数组的交集 II

161 阅读1分钟

第七十六天:力扣350题,两个数组的交集 II

地址:leetcode-cn.com/problems/in…

思路:map加哈希查询

var intersect = function(nums1, nums2) {
  let map = new Map();
  let res = [];
  for(let i of nums1)
  {
    map.has(i) ? map.set(i, map.get(i) + 1) : map.set(i, 1);
  }
  for(let i of nums2)
  {
    if(map.has(i) && map.get(i) > 0)
    {
      res.push(i);
      map.set(i, map.get(i) - 1);
    }
  }
  return res;
};

执行用时:108 ms, 在所有 JavaScript 提交中击败了12.52%的用户

内存消耗:39.9 MB, 在所有 JavaScript 提交中击败了15.80%的用户

后来想想,干嘛用map

var intersect = function(nums1, nums2) {
  let res = [];
  for(let i of nums2)
  {
    if(nums1.indexOf(i) !== -1)
    {
      res.push(i);
      nums1.splice(nums1.indexOf(i), 1);
    }
  }
  return res;
};

执行用时:92 ms, 在所有 JavaScript 提交中击败了49.63%的用户

内存消耗:39.5 MB, 在所有 JavaScript 提交中击败了39.40%的用户