【前端100问】Q59:给定两个数组,写一个方法来计算它们的交集。

写在前面

此系列来源于开源项目:前端 100 问:能搞懂 80%的请把简历给我
为了备战 2021 春招
每天一题,督促自己
从多方面多角度总结答案,丰富知识
给定两个数组,写一个方法来计算它们的交集。
整合地址:前端 100 问

正文回答

哈希表,时间复杂度 O(m + n) m 为 nums1 长度,n 为 nums2 长度

const intersect = (nums1, nums2) => {
  const map = {};
  const res = [];
  for (let n of nums1) {
    if (map[n]) {
      map[n]++;
    } else {
      map[n] = 1;
    }
  }
  for (let n of nums2) {
    if (map[n] > 0) {
      res.push(n);
      map[n]--;
    }
  }
  return res;
};

你可能感兴趣的:(【前端100问】Q59:给定两个数组,写一个方法来计算它们的交集。)