1. 程式人生 > >LeetCode349 求兩個陣列的交集

LeetCode349 求兩個陣列的交集

給定兩個陣列,編寫一個函式來計算它們的交集。

示例 1:

輸入: nums1 = [1,2,2,1], nums2 = [2,2]
輸出: [2]


示例 2:

輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
輸出: [9,4]

說明:

輸出結果中的每個元素一定是唯一的。
我們可以不考慮輸出結果的順序。

思路:

先找出兩個陣列的交集,再去重。

class Solution {
public:
    vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
        vector<int> res;
        set<int> tmp;
        tmp.insert(nums1.cbegin(),nums1.cend());
        for(int i=0;i<nums2.size();++i)
        {
            if(tmp.count(nums2[i]))
                res.push_back(nums2[i]);
        }
        set<int> n(res.begin(), res.end());
        res.assign(n.begin(), n.end());
        return res;
    }
};