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.
这一题主要是找出两个集合的交集,且重复项只显示一次,我的方法就是利用sort和unique函数来分别删除两个数组各自的重复项,然后再找出他们的交集,而且要考虑其中至少有一个空集的情况,我的代码如下:
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
vector<int>results;
if(!nums1.empty() && !nums2.empty()){
sort(nums1.begin(),nums1.end());
nums1.erase(unique(nums1.begin(),nums1.end()),nums1.end());
sort(nums2.begin(),nums2.end());
nums2.erase(unique(nums2.begin(),nums2.end()),nums2.end());
for(int i = 0; i < nums1.size(); i++){
for(int j = 0; j < nums2.size(); j++){
if(nums1[i] == nums2[j]){
results.push_back(nums1[i]);
break;
}
}
}
}
return results;
}
};