计算两个数组的交
注意事项
每个元素出现次数得和在数组里一样
答案可以以任意顺序给出
样例
nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2, 2].
//不必去重
#include <stdio.h>
#include <vector>
#include <algorithm>
using namespace std;
class Solution {
public:
/**
* @param nums1 an integer array
* @param nums2 an integer array
* @return an integer array
*/
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
// Write your code here
int i=0,j=0;
int m=nums1.size();
int n=nums2.size();
vector<int> nums3;
if(m==0 || n==0)
return nums3;
sort(nums1.begin(),nums1.end());
sort(nums2.begin(),nums2.end());
while(i <= m-1 && j <= n-1 ){
if(nums1[i] == nums2[j]){
nums3.push_back(nums1[i]);
i++;
j++;
}else if(nums1[i] < nums2[j]){
i++;
}else
j++;
}
return nums3;
}
};