0
已解决
知识点:二分查找
现有问题:不知道
现有思路:先输入,然后排序,再查找,最后输出
错误代码:
#include<bits/stdc++.h>
using namespace std;
int erf(int a[], int k, int l, int r) {
int left = l, right = r, mid;
while(left<right){
mid = left+(right-left)/2;
if(a[mid]<k)
left = mid+1;
else
right = mid;
}
if(a[right]==k) return k;
return 0;
}
int a[100001],b[100001],n,m,t[100001],c[100001];
int main() {
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
c[i]=a[i];
}
for(int i=1;i<=m;i++){
cin>>b[i];
}
sort(a+1,a+1+n);
sort(b+1,b+1+n);
for(int i=1;i<=n;i++){
if(erf(b,a[i],1,n)!=0)t[i]=erf(b,a[i],1,n);
}
for(int i=1;i<=n;i++){
if(erf(t,c[i],1,n)!=0)cout<<erf(t,c[i],1,n)<<' ';
}
return 0;
}
求解
@酷町扫地僧 申请精品贴
潘登在2022-01-27 21:03:43追加了内容
1
