350. 两个数组的交集 II
题目描述
题目分析
因为考虑到有重复的元素,而且不能剔除,所以先当到不能使用map和set和hash表
于是选择了vector,先把一个数组数据全部放进去,然后判断另一组是不是在里面
有就放入ans,并且剔除去一个,最后返回ans
看了题解还可以用哈希表的,<string,int>int存出现的次数
题解代码
Vector解题
class Solution {
public:
vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {
vector <int> ans ;
vector <int> vec ;
for(int i:nums1)
vec.push_back(i);
for(int i:nums2)
{
vector<int> ::iterator ite = find(vec.begin(),vec.end(),i);
if(ite != vec.end())
{
ans.push_back(i);
vec.erase(ite);
}
}
return ans;
}
};
hash表解决
class Solution {
public:
vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {
unordered_map <int,int> hashMap ;
vector <int> ans ;
for(int i:nums1)
hashMap[i]++;
for(int i:nums2)
{
if(hashMap[i] > 0)
{
ans.push_back(i);
hashMap[i]--;
}
}
return ans;
}
};