题号349:两个数组的交集
题目描述
给定两个数组 nums1 和 nums2,返回它们的 交集。输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。
示例 1:
输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2]
示例 2:
输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出:[9,4] 解释:[4,9] 也是可通过的
题解—使用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());
}
};
class Solution{
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
unordered_set<int> result_set;
int hash[1005] = {0};
for(int num:nums1){
hash[num] = 1;
}
for(int num:nums2){
if(hash[num] == 1)
result_set.insert(num);
}
return vector<int> (result_set.begin(), result_set.end());
}
};