349. 两个数组的交集
class Solution {
public:
// 计算两个数组的交集
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
unordered_set<int> resultSet; // 用于存储结果集的集合
int presenceArray[1005] = {0}; // 使用数组记录nums1中数字的出现,数组初始化为0
// 遍历nums1,标记出现过的数字
for (int number : nums1) {
presenceArray[number] = 1; // 标记数字出现过
}
// 遍历nums2,检查每个数字是否在nums1中出现过
for (int number : nums2) {
if (presenceArray[number] == 1) {
resultSet.insert(number); // 如果在nums1中出现过,加入结果集
presenceArray[number] = 0; // 避免重复添加到结果集中
}
}
// 将结果集转换为vector并返回
return vector<int>(resultSet.begin(), resultSet.end());
}
};