先sort一遍a数组和b数组
by wangjiawen @ 2023-08-28 09:29:13
可能会TLE
by wangjiawen @ 2023-08-28 09:29:51
@[__Harry_Haiyun__](/user/977778) 你可以用set
by zhaojianchao @ 2023-08-28 09:33:18
```cpp
#include<bits/stdc++.h>
using namespace std;
set<int> s;
int main(){
int n,m,x,a[100001];
cin>>n>>m;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=m;i++){
cin>>x;
s.insert(x);
}
for(int i=1;i<=n;i++)
if(s.count(a[i]))
{
cout<<a[i]<<" ";
continue;
}
return 0;
}
```
by zhaojianchao @ 2023-08-28 09:34:33
你直接用二分就可以了:
```
#include <bits/stdc++.h>
using namespace std;
int n,m,c[100100],k[100010];
int main()
{
cin>>n>>m;
for(int i=1; i<=n; i++) cin>>c[i];
for(int i=1; i<=m; i++) cin>>k[i];
sort(k+1,k+1+m);
for(int i=1; i<=n; i++)
{
int l=1,r=m;
while(l<=r)
{
int mid=(l+r)/2;
if(k[mid]==c[i])
{
cout<<c[i]<<" ";
break;
}
else if(k[mid]<c[i]) l=mid+1;
else r=mid-1;
}
}
return 0;
}
``````
by liyanchenlycccccc @ 2023-08-28 09:42:15
@[wangjiawen](/user/305069) (作弊者) @[zhaojianchao](/user/692217) @[liyanchencxk](/user/791994) 谢谢三位帮助!已AC
by __Harry_Haiyun__ @ 2023-08-28 10:01:14