1299(二分查找)
#include<stdio.h>
int main()
{
int m,n,i,a[1000001],res[1000001];;
scanf("%d%d",&n,&m);
for(i = 1; i<=n;i++)
{
scanf("%d",&a[i]);
}
int left=1,right=n,x,len=0;
for(i=0;i<m;i++)
{
scanf("%d",&x);
left=1,right=n;//每次输入都要重置下标
while(left<=right)
{
int mid =(left+right)/2;
if(x>a[mid])
left=mid+1;
else
right=mid-1;
}
if(a[left]==x)
res[len++]=left;
else
res[len++]=-1;
}
for(i=0;i<len;i++)
{
printf("%d ",res[i]);
}
return 0;
}

浙公网安备 33010602011771号