题目描述
解法一(双指针)
#include<iostream>
#include<vector>
#include<unordered_map>
#include<algorithm>
using namespace std;
vector<int> intersect(vector<int>& nums1,vector<int>& nums2){
sort(nums1.begin(),nums1.end());
sort(nums2.begin(),nums2.end());
vector<int> mid;
int nums1len = nums1.size(),nums2len = nums2.size();
int index1=0,index2=0;
while(index1<nums1len && index2<nums2len){
if(nums1[index1]<nums2[index2]){
index1++;
}else if(nums1[index1]>nums2[index2]){
index2++;
}else{
mid.push_back(nums1[index1]);
index1++;
index2++;
}
}
return mid;
}
int main(){
vector<int> num1 = {4,9,5};
vector<int> num2 = {9,4,9,8,4};
for(auto i:intersect(num1,num2))
cout<<i<<endl;
}