1. 题目

[intersection-of-two-arrays-ii](https://leetcode.com/problems/intersection-of-two-arrays-ii/)


2. 算法

* 哈希

* 两指针


3. 代码

* 哈希


class Solution {

public:

    vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {

        unordered_map<int, int> m;

        vector<int> res;

        for (auto a : nums1) ++m[a];

        for (auto a : nums2) {

            if (m[a]-- > 0) res.push_back(a);

        }

        return res;

    }

};

* 两指针


class Solution {

public:

    vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {

        vector<int> res;

        int i = 0, j = 0;

        sort(nums1.begin(), nums1.end());

        sort(nums2.begin(), nums2.end());

        while (i < nums1.size() && j < nums2.size()) {

            if (nums1[i] == nums2[j]) {

                res.push_back(nums1[i]);

                ++i; ++j;

            } else if (nums1[i] > nums2[j]) {

                ++j;

            } else {

                ++i;

            }

        }

        return res;

    }

};

results matching ""

    No results matching ""