给定两个数组,编写一个函数来计算它们的交集。
示例 1:
输入: nums1 = [1,2,2,1], nums2 = [2,2]
输出: [2]
示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出: [9,4]
说明:输出结果中的每个元素一定是唯一的。
我们可以不考虑输出结果的顺序。来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/intersection-of-two-arrays
首先利用 Set 对数组去重,然后检查较小的数组是否存在于较大的数组中,从而找到相同的元素:
/** * @param {number[]} nums1 * @param {number[]} nums2 * @return {number[]} */ var intersection = function(nums1, nums2) { let num1 = [...new Set(nums1)]; let num2 = [...new Set(nums2)]; let result = []; if(num1.length<=num2.length){ for(let i=0;i<num1.length;i++){ for(let j=0;j<num2.length;j++){ if(num1[i]==num2[j]){ result.push(num1[i]); } } } }else { for(let i=0;i<num2.length;i++){ for(let j=0;j<num1.length;j++){ if(num2[i]==num1[j]){ result.push(num2[i]); } } } } return result; };