349. 两个数组的交集
题目描述
题目描述
哈希集合实现
#pragma once
#include <iostream>
#include<vector>
#include<unordered_set>
using namespace std;
class Solution
{
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2)
{
unordered_set<int> s1;
unordered_set<int> s2;
for (int num1 : nums1)
{
s1.insert(num1);
}
for (int num2 : nums2)
{
s2.insert(num2);
}
vector<int> ans;
unordered_set<int>::iterator it1;
unordered_set<int>::iterator it2;
for (it1 = s1.begin(); it1 != s1.end(); it1++)
{
for (it2 = s2.begin(); it2 != s2.end(); it2++)
{
if ((*it1) == (*it2))
{
ans.push_back((*it2));
}
}
}
return ans;
}
};
int main()
{
int arry1[] = { 4,9,5 };
int arry2[] = { 9,4,9,8,4 };
vector<int> nums1;
vector<int> nums2;
for (int i = 0; i < sizeof(arry1) / sizeof(int); i++)
{
nums1.push_back(arry1[i]);
}
for (int i = 0; i < sizeof(arry2) / sizeof(int); i++)
{
nums2.push_back(arry2[i]);
}
Solution S;
vector<int> ans = S.intersection(nums1, nums2);
vector<int>::iterator it;
cout << "交集为:" << endl;
for (it = ans.begin(); it != ans.end(); it++)
{
cout << *it << " ";
}
cout << endl;
system("pause");
return 0;
}
运行结果
提交结果