描述:
计算两个数组的交
注意事项
每个元素出现次数得和在数组里一样
答案可以以任意顺序给出
样例:
nums1 = [1, 2, 2, 1]
,
nums2 = [2, 2]
, 返回 [2,
2]
.
思路:
这道题的思路与两组数的交一样是建立哈希表,区别在于将a[x]的值改为i+1,最后输出a[x]的值个x。
class Solution {
public:
/**
* @param nums1 an integer array
* @param nums2 an integer array
* @return an integer array
*/
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
// Write your code here
int a[900005];
int i;
vector<int>v;
memset(a,0,sizeof(a));
for(i=0;i<nums1.size();i++)
{
a[nums1[i]+200000]++;
}
for(i=0;i<nums2.size();i++)
{
if(a[nums2[i]+200000])
{
v.push_back(nums2[i]);
a[nums2[i]+200000]--;
}
}
return v;
}
};