一、思路
种类问题一般都可以考虑哈希(或set)。
首先我们统计有nums1和nums2各有几种数字,然后找出共有的即可
二、代码
1.python
代码如下:
class Solution:
def intersection(self, nums1, nums2) :
res = []
dic1,dic2 = {},{}
for i in nums1:
dic1[i] = dic1.get(i,0) + 1
for j in nums2:
dic2[j] = dic2.get(j,0) + 1
for key in dic1.keys():
if key in dic2.keys():
res.append(key)
return res
2.C++
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
vector<int> res;
map<int,int> m1,m2;
for(int i = 0;i<nums1.size();i++){
m1[nums1[i]]++;
}
for(int j = 0;j<nums2.size();j++){
m2[nums2[j]]++;
}
for(auto it = m1.begin();it != m1.end(); it++){
if(m2.find(it->first) != m2.end()){
res.push_back(it->first);
}
}
return res;
}
};
C++是真的快