Binary Search:349. Intersection of Two Arrays

来源:互联网 发布:金牌网吧奖励软件 编辑:程序博客网 时间:2024/06/05 14:20

求两个数组相交的数字的集合,结果中不能有重复的。

想到了用set

class Solution {public:    vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {        int m = nums1.size(), n = nums2.size();        set<int> res;        vector<int> result;        for(int i = 0; i < m; ++i)        {            for(int j = 0; j < n; ++j)            {                if(nums1[i] == nums2[j])                {                    res.insert(nums1[i]);                    break;                }            }        }        for(auto a : res)        {            result.push_back(a);        }        return result;    }};

看了大神代码,更简洁:

class Solution {public:    vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {        set<int> s(nums1.begin(), nums1.end()), res;        for (auto a : nums2) {            if (s.count(a)) res.insert(a);        }        return vector<int>(res.begin(), res.end());    }};


原创粉丝点击