力扣之两个数组的交集1
-
题目描述 : 给定两个数组,编写一个函数来计算它们的交集
-
样例输入
示例 :
输入: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 arr1 = Array.from(new Set(nums1));
var arr2 = Array.from(new Set(nums2))
var arr = [];
//如果元素在arr2里面存在,那么放入输入arr
for(var i = 0 ; i < arr1.length ; i ++){
if(arr2.indexOf(arr1[i]) > -1) arr.push(arr1[i])
}
return arr
};
力扣之两个数组的交集2
题目描述 : 给定两个数组,编写一个函数来计算它们的交集
-
说明 :
- 输出结果中每个元素出现的次数,应与元素在两个数组中出现次数的最小值一致。
- 我们可以不考虑输出结果的顺序。
-
样例输入
输入:nums1 = [1,2,2,1], nums2 = [2,2]
输出:[2,2]
输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出:[4,9]
var intersect = function(nums1, nums2) {
var index;
var arr = []
for(var i = 0 ; i < nums1.length ; i ++){
index = nums2.indexOf(nums1[i]);
//当元素在nums2中存在是,将该元素插入arr并在nums2中将该元素删除
if(index > -1){
arr.push(nums1[i]);
nums2.splice(index , 1)
}
}
return arr
};