[Leetcode] 349. Intersection of Two Arrays

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.

class Solution {
public:
    vector intersection(vector& nums1, vector& nums2) {
        set shortSet;
        set returnSet;
        vector ret;
        
        if(nums1.size() > nums2.size()){
            vector tmp = nums1;
            nums1 = nums2;
            nums2 = tmp;
        }
        
        for(auto i = nums1.begin(); i != nums1.end(); i++){
            shortSet.insert(*i);
        }
        for(auto i = nums2.begin(); i != nums2.end(); i++){
            if(shortSet.count(*i) > 0){
                returnSet.insert(*i);
            }
        }
        for(auto i = returnSet.begin(); i != returnSet.end(); i++){
            ret.push_back(*i);
        }
        return ret;
    }
};

你可能感兴趣的:([Leetcode] 349. Intersection of Two Arrays)