教科书式代码
2023-07-22 10:44:52
发布于:浙江
75阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int n,m,a[100005],x;
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=0;i<m;i++){
cin>>x;
int l=1,r=n;
bool k=false;
while(l<=r){
int mid=(l+r)/2;
if(a[mid]==x){
cout<<mid<<endl;//如果找到了,就输出,并且判定已找到
k=true;
break;
}
else if(x<a[mid]){
r=mid-1;//数在mid左边,r向左移动
continue;
}
else{
l=mid+1;//数在mid右边,l向右移动
continue;
}
}
if(k==false)
cout<<"-1"<<endl;//未找到
}
return 0;
}
附上注释,谨此作答
这里空空如也
有帮助,赞一个