力扣-350.两个数组的交集||

Idea

首先遍历第一个数组,用哈希表存储每个数字及其出现的次数。
然后遍历第二个数组,每出现重复的数字,并判断该数字在哈希表的次数是不是大于0,如果大于则存入答案数组,并将哈希表次数减1,直接遍历结束。

AC Code

class Solution {
public:
    vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {
        unordered_map<int,int> map;
        vector<int> ans;
        for(int i : nums1) map[i]++;
        for(int i : nums2) {
            if(map.count(i) && map[i] > 0){
                ans.emplace_back(i);
                map[i]--;
            }
        }
        return ans;
    }
};

力扣-350.两个数组的交集||_第1张图片

你可能感兴趣的:(LeetCode,leetcode,算法)