Skip to content

给定两个数组,写一个方法来计算它们的交集?

Posted on:2024年8月14日 at 23:59

要计算两个数组的交集,可以使用多种方法。

下面是一个使用 Set 数据结构的高效实现:

使用 Set 数据结构

function intersection(arr1, arr2) {
  // 将第一个数组转换为 Set
  const set1 = new Set(arr1);

  // 使用 filter 方法过滤出存在于 set1 中的元素
  return arr2.filter((item) => set1.has(item));
}

// 使用示例
const array1 = [1, 2, 2, 1];
const array2 = [2, 2];
const result = intersection(array1, array2);
console.log(result); // 输出 [2, 2]

实现要点

  1. 将第一个数组转换为 Set

    • 这样做的好处是 Set 提供了常数时间复杂度的查找操作,能够快速判断元素是否存在。
  2. 使用 filter 方法

    • 遍历第二个数组,检查每个元素是否存在于第一个数组的 Set 中。

说明

复杂度

原文转自:https://fe.ecool.fun/topic/6cbf1c8b-1af1-41e4-a2c1-577021781057