天天看點

[筆試]兩個整數集合求交集并集

A,B兩個整數集合,設計一個算法求他們的交集,盡可能的高效。

交集:

vector<int> intersectionOf(vector<int> A, vector<int> B)
{
    vector<int> res;
    hash_set<int> ans;
    for(int i = ; i < A.size(); i++)
        ans.insert(A[i]);
    for(int i = ; 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 = ; i < A.size(); i++)
        ans.insert(A[i]);
    for(int i = ; i < B.size(); i++){
        ans.insert(B[i]);
    }
    for(auto it = ans.begin(); it != ans.end(); it ++)
        res.push_back(*it);
    return res;
}
           

繼續閱讀