两个数组的交集(哈希)

在这里插入图片描述

//哈希表
class Solution {
public:
    vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {
        if(nums1.size()<nums2.size())
        {
            return intersect(nums2,nums1);
        }
        unordered_map<int,int>mp;
        for(int i=0;i<nums1.size();i++)
        {
            //mp[nums1[i]]++;
            if(mp.find(nums1[i])==mp.end())
            {
                mp.insert(pair(nums1[i],1));
            }
            else
            {
                mp[nums1[i]]++;
            }
        }
        vector<int>res;
        for(int&num:nums2)
        {
            if(mp.count(num))
            {
                res.push_back(num);
                mp[num]--;
                if(mp[num]==0)
                {
                    mp.erase(num);
                }
            }

        }
        return res;



    }
};

猜你喜欢

转载自blog.csdn.net/ShenHang_/article/details/107319514