【LeetCode】349. Intersection of Two Arrays

来源:互联网 发布:冰与火之歌世界观知乎 编辑:程序博客网 时间:2024/06/06 05:51

Given two arrays, write a function to compute their intersection.

Example:
Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2].

Note:

  • Each element in the result must be unique.
  • The result can be in any order.

方法1使用SET。

class Solution {public:    vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {        set<int>s1,s2;        vector<int> ans;        for(int i=0;i<nums1.size();i++)s1.insert(nums1[i]);        for(int i=0;i<nums2.size();i++)s2.insert(nums2[i]);        set<int>::iterator it;         for(it=s1.begin();it!=s1.end();++it){            if(s2.count(*it))ans.push_back(*it);        }        return ans;    }};

方法2:使用MAP

class Solution {public:    vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {        map<int,bool>mp;        vector<int> ans;        for(int i=0;i<nums1.size();i++)mp[nums1[i]]=true;        for(int i=0;i<nums2.size();i++){            if(mp[nums2[i]]){                ans.push_back(nums2[i]);                mp.erase(nums2[i]);            }        }        return ans;    }};
原创粉丝点击