Idea
首先遍历第一个数组,用哈希表存储每个数字及其出现的次数。
然后遍历第二个数组,每出现重复的数字,并判断该数字在哈希表的次数是不是大于0,如果大于则存入答案数组,并将哈希表次数减1,直接遍历结束。
AC Code
cpp
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;
}
};