Every day a leetcode
题目来源:349. 两个数组的交集
解法1:遍历
利用了STL unordered_set容器的特性。
代码:
/*
* @lc app=leetcode.cn id=349 lang=cpp
*
* [349] 两个数组的交集
*/
// @lc code=start
class Solution
{
public:
vector<int> intersection(vector<int> &nums1, vector<int> &nums2)
{
int n1 = nums1.size();
int n2 = nums2.size();
vector<int> ans;
unordered_set<int> uset(nums1.begin(), nums1.end());
for (int i = 0; i < n2; i++)
{
if (uset.count(nums2[i]))
{
ans.push_back(nums2[i]);
uset.erase(nums2[i]);
}
}
return ans;
}
};
// @lc code=end
结果:

复杂度分析:
时间复杂度:O(n)
空间复杂度:O(n)
该文介绍了如何使用C++中的STLunordered_set容器来解决LeetCode第349题——找到两个数组的交集。方法是遍历其中一个数组,利用unordered_set的O(1)查找速度检查元素是否在另一数组中,将交集元素存入结果向量。时间复杂度为O(n),空间复杂度同样为O(n)。
501

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



