两个数组的交集 II
给定两个数组,编写一个函数来计算它们的交集。
示例 1:
输入: nums1 = [1,2,2,1], nums2 = [2,2]
输出: [2,2]
示例 2:
输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出: [4,9]
说明:
输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。
我们可以不考虑输出结果的顺序。
class Solution {
public:
vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {
vector<int> output;
if(nums1.size() == 0 || nums2.size()==0)
return output;
sort(nums1.begin(), nums1.end());
sort(nums2.begin(), nums2.end());
vector<int>::iterator iter1 = nums1.begin();
vector<int>::iterator iter2 = nums2.begin();
while(iter1<nums1.end() && iter2<nums2.end())
{
if(*iter1<*iter2)
{
if(iter1==nums1.end()-1)
return output;
iter1++;
}
else if(*iter1>*iter2)
{
if(iter2==nums2.end()-1)
return output;
iter2++;
}
else
{
output.push_back(*iter1);
if(iter1==nums1.end()-1||iter2==nums2.end()-1)
return output;
iter1++;
iter2++;
}
}
return output;
}
};