输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出:[9,4]
// 方法1 (采用哈希表 unordered_set) 用unordered_set是因为底层是哈希表查找元素的时间是O(1)
class solution{
public:
vector<int> intersection(vector<int> &nums1, vector<int> &nums2){
// 将数组的相关元素放在集合中,便于采用count()统计元素个数
unordered_set<int> vis;
for(int num : nums){
// 数据
vis.insert(num);
}
// 检查数据nums2是否在nums1出现过,
// 如果出现了,添加元素,并为了避免元素重复插入到结果中,更新并删除vis中相关元素
vector<int> res;
for(int num : nums){
if(vis.count(num)){
ans.push_back(num);
vis.erase(num);
}
}
return res;
}
};