Leetcode349:两个数组的交集

题目描述:

给定两个数组 nums1 和 nums2 ,返回 它们的 交集。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。

示例 1:

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

示例 2:

输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出:[9,4]
解释:[4,9] 也是可通过的
 

提示:

  • 1 <= nums1.length, nums2.length <= 1000

  • 0 <= nums1[i], nums2[i] <= 1000

以数组1中的值为键值,给对应位置置1,以数组2中的值为键值,给对应位置减1,如果减1后为0,则表示数组1中存在该值。

class Solution {
public:
    vector intersection(vector& nums1, vector& nums2) {
        vector res;
        unordered_map hash;
        for(const auto &c:nums1){
            hash[c]=1;
        }
        for(const auto &c:nums2){
            hash[c]--;
            if(hash[c]==0){
                res.push_back(c);
            }
        }
        return res;
    }
};

你可能感兴趣的:(算法,leetcode,c++,哈希算法)