两个数组的交集
一、LeetCode题解
瞧一瞧~
- 博健的LeetCode题解:Gitbook版本传送门
- 博健的LeetCode题解:CSDN传送门
- 前端进阶笔记:Gitbook传送门
二、算法题
题目
给定两个数组,编写一个函数来计算它们的交集。
-
输入:
nums1 = [1,2,2,1], nums2 = [2,2]
-> 输出:[2]
-
输入:
nums1 = [4,9,5], nums2 = [9,4,9,8,4]
-> 输出:[9,4]
输出结果中的每个元素一定是唯一的。
我们可以不考虑输出结果的顺序。
解法一(循环比对)
既然是两个数组比较,就需要确定比较的边界。两个数组的交集最理想的结果是:两个数组中长度短的数组
内的全部元素
var intersection = function(nums1, nums2) {
var arrShort = nums1.length > nums2.length ? nums2 : nums1 //确定长度短的元素
var arrLong = nums1.length > nums2.length ? nums1 : nums2 //确定剩下的数组
var res = []
arrShort.forEach(item => {
if(arrLong.indexOf(item) >= 0){
if(res.indexOf(item) == -1){
res.push(item )
}
}
});
return res
};