通过字典的方式实现
- 时间复杂度:O (m + n)
空间复杂度:O (m + n)
function intersection(nums1, nums2) {
const map = new Map();
nums1.forEach((m) => {
map.set(m, true);
});
const res = [];
nums2.forEach((n) => {
if (map.get(n)) {
res.push(n);
map.delete(n);
}
});
return res;
}
上方的代码有两层非嵌套的循环,所以时间复杂度是 O (m + n),开辟额外的空间有 map 和 res 长度受 m 和 n 影响,所以空间复杂度是O (m + n)。