A,B两个整数集合,设计一个算法求他们的交集,尽可能的高效。
交集:
vector<int> intersectionOf(vector<int> A, vector<int> B)
{
vector<int> res;
hash_set<int> ans;
for(int i = 0; i < A.size(); i++)
ans.insert(A[i]);
for(int i = 0; i < B.size(); i++){
if(ans.find(B[i]) != ans.end())
res.push_back(B[i]);
}
return res;
}
并集:
vector<int> unionOf(vector<int> A, vector<int> B)
{
vector<int> res;
hash_set<int> ans;
for(int i = 0; i < A.size(); i++)
ans.insert(A[i]);
for(int i = 0; i < B.size(); i++){
ans.insert(B[i]);
}
for(auto it = ans.begin(); it != ans.end(); it ++)
res.push_back(*it);
return res;
}