题目描述
题目描述
给定两个数组 nums1
和 nums2
,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。按照从小到大的顺序输出两个数组的交集。
输入格式
第一行输入两个整数 和 ,分别表示nums1
和 nums2
两个数组元素数量。
第二行输入个空格分开的整数,表示nums1
数组。
第二行输入个空格分开的整数,表示nums2
数组。
输出格式
按照从小到大的顺序输出两个数组的交集。
样例
样例输入1
复制4 2
1 2 2 1
2 2
样例输出1
复制2
样例输入2
复制3 5
4 9 5
9 4 9 8 4
样例输出2
复制4 9
日常发作业题解。
也是简单到爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆表的题
写作不易,点个赞呗!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
cpp
#include <bits/stdc++.h>
using namespace std;
int n,m,idx;
int a[1000005],b[1000005],c[1000005];
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=m;i++)cin>>b[i];
sort(a+1,a+1+n);
sort(b+1,b+1+m);
int f=1,s=1;
while(f<=n&&s<=m){//快慢指针法
if(a[f]>b[s])s++;
if(a[f]<b[s])f++;
if(a[f]==b[s]){
if(c[idx]!=a[f]){//去重
idx++;
c[idx]=a[f];
}
f++,s++;
}
}
for(int i=1;i<=idx;i++)cout<<c[i]<<" ";
}