本文讲述的是力扣第349题:两个数组的交集。
这个题目的要求是两个数组之间的交集,并且需要的是一个无重复的数组,所以需要一个set数据结构。 但是最后如何转成一个数组输出出去,则需要用到一个Array.from(Set)的方法解决这个问题。
那么我们来看一下下方代码的解决方式。
var intersection = function(nums1, nums2) {
//考虑到题目需要返回的结果是交集,而且是不重复的交集,果断把res定义为set
const res = new Set()
if(nums1 === [] || nums2 === []){
return []
}
//这就来尝试一下把nums2转化为set的方式
const set = new Set(nums2)
for(num of nums1){
//nums2.includes这个方法是对一个值的查找的时间复杂度是o(n)
//如果能把nums2转化为set,并用set.has(?)来判断,时间复杂度可以缩减为o(1)。
if(nums2.includes(num)){
//if(set.has(num)){
res.add(num)
}
}
//Array.from也是将set数据结构转化为数组的其中一个方法。
return Array.from(res)
};