题目要求:
给定两个数组,写一个方法来计算它们的交集。
例如:
给定 nums1 = [1, 2, 2, 1]
, nums2 = [2, 2]
, 返回 [2, 2]
.
分析:查找问题过程中,需要关注查找对应关系的时候,也就是问x出现了几次。用map容器。同样也有insert,find,erase,change函数,用此容器我们可以解决此问题。
代码:
class Solution {
public:
vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {
map<int,int>record;
for(int i=0;i<nums1.size();i++)
record[nums1[i]]++;
vector<int> resultvector;
for(int i=0;i<nums2.size();i++)
if(record[nums2[i]]>0)
{
resultvector.push_back(nums2[i]);
record[nums2[i]]--;
}
return resultvector;
}
};