当前位置: 首页> 健康> 知识 > 349. 两个数组的交集-LeetCode(C++)

349. 两个数组的交集-LeetCode(C++)

时间:2025/7/12 20:14:09来源:https://blog.csdn.net/woshihlf/article/details/142154233 浏览次数:0次

349. 两个数组的交集

2024.9.11

题目

给定两个数组 nums1nums2 ,返回 它们的 交集。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序

示例

示例 1:

输入:nums1 = [1,2,2,1], nums2 = [2,2]
输出:[2]

示例 2:

输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出:[9,4]
解释:[4,9] 也是可通过的
题解

利用哈希表键唯一且查询时间复杂度为O(1)。

class Solution {
public:vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {std::vector<int> result;std::unordered_map<int, int> hash;// 使用哈希表记录 nums1 中每个元素的出现次数for (const auto &c : nums1) {hash[c] = 1;}// 遍历 nums2,检查每个元素是否在 nums1 中出现过for (const auto &c : nums2) {// 如果哈希表中存在该元素,并且计数大于0,说明是交集的一部分if (hash[c] == 1) {result.push_back(c);// 将该元素的计数设置为0hash[c] = 0;}}return result;}
};
关键字:349. 两个数组的交集-LeetCode(C++)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: