本文参考代码随想录
给定两个数组,编写一个函数计算他们的交集
本题没有给定数组的大小,因此不适合用数组做哈希表。使用unordered_set
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
unordered_set<int> result_set;
unordered_set<int> nums_set(nums1.begin(), nums1.end());
for(int num:nums2){
if(nums_set.find(num) != nums_set.end()){
result_set.insert(num);
}
}
return vector<int>(result_set.begin(), result_set.end());
}
};
时间复杂度:O(n+m), m是最后要把 set转成vector
空间复杂度:O(n)