Description:
Given two arrays, write a function to compute their intersection.
Example:
Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2].
Note:
Each element in the result must be unique.
The result can be in any order.
Language: C++
解法一:
由于题目是“存不存在问题”而不是“关联对应问题”(如重复元素出现几次),想到用set来解决。其中像set中插入元素用insert。且容器类的构造函数有相同接口,因此可以很轻松吧set类型转换为vector类型。
Time: O(nlogn)O(nlogn)
Space: O(n)O(n)
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
set<int> record(nums1.begin(),nums1.end());
set<int> result;
for(int i = 0; i < nums2.size(); i++){
if(record.find(nums2[i])!=record.end())
result.insert(nums2[i]);
}
vector<int> res(result.begin(),result.end());
return res;
}
};
本文介绍了一种使用C++解决两个数组交集问题的方法。通过运用set数据结构,确保了结果中每个元素的唯一性,并实现了高效的查找。最终返回的是两个输入数组的交集元素。
706

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



