Sam_Gamer @ 2023-07-26 15:42:27
#include<bits/stdc++.h>
#define N 1000010
#define M 100010
using namespace std;
int n,m,a[N],b[M];
int binsearch(int n)
{
int l=0,r=n-1,res=-1;
while(l<=r)
{
int mid=l+(r-l)/2;
if(a[mid]==n)
{
res=mid+1;
break;
}
if(a[mid]>n)
{
r=mid-1;
}
if(a[mid]<n)
{
l=mid+1;
}
}
return res;
}
int main()
{
cin>>n>>m;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
for(int i=0;i<m;i++)
{
cin>>b[i];
}
for(int i=0;i<m;i++)
{
cout<<binsearch(b[i])<<' ';
}
return 0;
}
样例对了,数据范围?
by haokee @ 2023-07-26 15:45:45
@Sam_Gamer 有没有这么一种可能,binsearch
没找到会返回
by Sam_Gamer @ 2023-07-26 15:48:42
@haokee 亲,这边也是返回了呢
by Sam_Gamer @ 2023-07-26 15:53:43
help!!!
by haokee @ 2023-07-26 15:54:07
@Sam_Gamer 你用负一来做下标可能会越界哦。
by Sam_Gamer @ 2023-07-26 15:54:55
@haokee 好的O