349. 两个数组的交集 (哈希表)(Leetcode刷题笔记)
https://lunan0320.cn
文章目录
题目
给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。
解题代码 C++(unordered_set)
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
unordered_set<int> set(nums2.begin(),nums2.end());
unordered_set<int> res;
for(int num : nums1){
if(set.find(num) != set.end()){
res.insert(num);
}
}
return vector<int>(res.begin(),res.end());
}
};
解题代码 C++(unordered_map)
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
unordered_map<int,int> hash_map;
vector<int> res;
for(int num : nums1) hash_map[num]++;
for(int num : nums2) {
if(hash_map[num] != 0){
res.push_back(num);
hash_map[num]=0;
}
}
return res;
}
};