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
(
n
l
o
g
n
)
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;
}
};