Skip to main content

两个数组的交集-ii

题目

给定两个数组, 编写一个函数来计算它们的交集.

示例
输入: (nums1 = [1, 2, 2, 1]), (nums2 = [2, 2])
输出: [2, 2]
输入: (nums1 = [4, 9, 5]), (nums2 = [9, 4, 9, 8, 4])
输出: [4, 9]

题解

先排序再双指针呗.

/**
* @param {number[]} nums1
* @param {number[]} nums2
* @return {number[]}
*/
var intersect = function (nums1, nums2) {
nums1.sort((a, b) => a - b)
nums2.sort((a, b) => a - b)
const res = []

let i = 0,
j = 0

while (i < nums1.length && j < nums2.length) {
if (nums1[i] === nums2[j]) {
res.push(nums1[i])
i++
j++
} else if (nums1[i] < nums2[j]) {
i++
} else {
j++
}
}

return res
}