「每日LeetCode」2021年11月11日

本文最后更新于:2023年3月19日 晚上

Lt2032. 至少在两个数组中出现的值

2032. 至少在两个数组中出现的值

给你三个整数数组 nums1、nums2 和 nums3 ,请你构造并返回一个 与这三个数组都不同的 数组,且由 至少两个 数组中出现的所有值组成数组中的元素可以按 任意 顺序排列。

示例 1:
输入:nums1 = [1,1,3,2], nums2 = [2,3], nums3 = [3] 输出:[3,2] 解释:至少在两个数组中出现的所有值为: - 3 ,在全部三个数组中都出现过。 - 2 ,在数组 nums1 和 nums2 中出现过。
示例 2:
输入:nums1 = [3,1], nums2 = [2,3], nums3 = [1,2] 输出:[2,3,1] 解释:至少在两个数组中出现的所有值为: - 2 ,在数组 nums2 和 nums3 中出现过。 - 3 ,在数组 nums1 和 nums2 中出现过。 - 1 ,在数组 nums1 和 nums3 中出现过。
示例 3:
输入:nums1 = [1,2,2], nums2 = [4,3,3], nums3 = [5] 输出:[] 解释:不存在至少在两个数组中出现的值。

提示:

  • 1 <= nums1.length, nums2.length, nums3.length <= 100
  • 1 <= nums1[i], nums2[j], nums3[k] <= 100

思路

两两求交集,再去掉交集重复的部分即可

解答

1
2
3
4
5
6
const twoOutOfThree = (nums1, nums2, nums3) => {
const nums12 = nums1.filter((num) => nums2.includes(num));
const nums13 = nums1.filter((num) => nums3.includes(num));
const nums23 = nums2.filter((num) => nums3.includes(num));
return [...new Set([...nums12, ...nums13, ...nums23])];
};