题目简述
给定两个数组,编写一个函数来计算它们的交集
示例 1:
- 输入:nums1 = [1,2,2,1], nums2 = [2,2]
- 输出:[2,2]
简单
双指针
/**
* @param {number[]} nums1
* @param {number[]} nums2
* @return {number[]}
*/
var intersect = function(nums1, nums2) {
let minNum = nums1.length < nums2.length ? nums1 : nums2
let maxNum = nums1.length >= nums2.length ? nums1 : nums2
const res = []
for (let i = 0 ; i < minNum.length; i ++) {
let index = maxNum.indexOf(minNum[i])
// 存在
if (index !== -1) {
res.push(minNum[i])
maxNum.splice(index, 1)
}
}
return res
};
- 问题分析
- 这道题思路很简单,对于两个数组
arr1
、arr2
,在arr1
中遍历每个元素,如果能够在arr2
中找到,就说明是交集,把这个元素放到结果数组中,并且在arr2
中删除相同元素,避免二次查询到。
- 这道题思路很简单,对于两个数组