题意描述:
给定两个数组,编写一个函数来计算它们的交集。

有两种方法:
1、利用unordered_set容器编写
2、和上一题一样利用数组来编写
利用unordered_set容器的C++代码如下:
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
unordered_set<int> result_set;
unordered_set<int> num_set(nums1.begin(), nums1.end());
for(int num : nums2){
if(num_set.find(num) != num_set.end()){
result_set.insert(num);
}
}
return vector<int> (result_set.begin(), result_set.end());
}
};
利用数组编写的C++代码如下:
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
unordered_set<int> result_set;
int hash[1003] = {0};
for(int num : nums1){
hash[num] = 1;
}
for(int num : nums2){
if(hash[num] == 1){
result_set.insert(num);
}
}
return vector<int>(result_set.begin(), result_set.end());
}
};
这篇博客介绍了两种使用C++计算两个整数数组交集的方法:一种是利用unordered_set容器,另一种是利用数组。代码示例展示了如何在实际编程中实现这两种方法,以高效地找到两个集合的共同元素。

251

被折叠的 条评论
为什么被折叠?



