dfsgbear2 @ 2023-07-15 20:39:53
#include<bits/stdc++.h>
using namespace std;
int mid,m,n,a[100001],z,k;
int zy(int x,int y,int z){
while(x<y){
mid=(x+y)/2;
if(a[mid]>z)y=mid;
else x=mid+1;
}
return -1;
if(a[mid]==z)return mid;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
scanf("%d", &a[i]);
}
for(int i=0;i<m;i++){
cin>>z;
k=zy(0,n,z);
cout<<k;
}
}
by sQrtN @ 2023-07-15 20:55:18
emm大概看了眼超时先不说(蒟蒻也不一定找得到),zy函数中的
return -1;//直接返回-1,后面的语句不会执行
if(a[mid]==z)return mid;
这里就有问题,两行代码交换一下