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;}
};