两个数组的交集
给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。
示例 1:
输入:nums1 = [1,2,2,1], nums2 = [2,2]
输出:[2]
1
2
2
/**
* @param {number[]} nums1
* @param {number[]} nums2
* @return {number[]}
*/
var intersection = function(nums1, nums2) {
// 排序
nums1.sort((a, b) => a - b)
nums2.sort((a, b) => a - b)
let m = 0
let n = 0
let len1 = nums1.length
let len2 = nums2.length
let ans = []
while (m < len1 && n < len2) {
if (nums1[m] === nums2[n]) {
// 去重
if (!ans.length || ans[ans.length - 1] !== nums1[m]) {
ans.push(nums1[m])
}
m++
n++
} else if (nums1[m] > nums2[n]) {
n++
} else {
m++
}
}
return ans
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/intersection-of-two-arrays