题目
给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。
这道题就需要有重合的出现了,所以不能用set集合了,转而用map和数组都可以。
这里分享一个map的做法,顺便复习一下写法
cpp
class Solution {
public:
vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {
unordered_map<int,int> mp;
vector<int> ans;
for (int num: nums1) {
mp[num]++;
}
for (int num: nums2) {
if (mp[num] > 0) {
ans.emplace_back(num);
mp[num] --;
}
}
return ans;
}
};