[LeetCode]349. Intersection of Two Arrays
题目描述
思路
使用map存数组1
遍历数组2的元素
如果map中有记录,放入结果中,并将map中的记录擦除
代码
#include <iostream>
#include <vector>
#include <unordered_map>
using namespace std;
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
vector<int> res;
unordered_map<int, int> n1;
for (int p : nums1)
++n1[p];
for (int p : nums2)
if (n1.count(p)) {
res.push_back(p);
n1.erase(p);
}
return res;
}
};
int main() {
vector<int> res, nums1 = { 1, 2, 2, 1 }, nums2 = { 2, 2, 1 };
Solution s;
res = s.intersection(nums1, nums2);
for (int p : res) {
cout << p << " ";
}
cout << endl;
system("pause");
}