LeetCode350:两个数组的交集 II
题目说明
给定两个数组,编写一个函数来计算它们的交集。
示例 1:
输入: nums1 = [1,2,2,1], nums2 = [2,2]
输出: [2,2]
示例 2:
输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出: [4,9]
javascript
/**
* @param {number[]} nums1
* @param {number[]} nums2
* @return {number[]}
*/
var intersect = function(nums1, nums2) {
// 利用 indexOf 来判断,首先得先确定数组的长短
let bigNums = nums1, smallNums = nums2, resNums = [];
if( nums1.length >= nums2.length) {
bigNums = nums1;
smallNums = nums2;
} else {
bigNums = nums2;
smallNums = nums1;
}
for(let i = 0; i < smallNums.length; i++) {
idx = bigNums.indexOf(smallNums[i]); //返回小数组这一项在大数组中的下标
if( idx!=-1) {
resNums.push(smallNums[i]);
smallNums.splice(i,1); //找到后将大小数组中这一项去除
bigNums.splice(idx,1);
i--; //小数组去掉一项,需要将 i 值减一
}
}
return resNums;
};