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;
}

posted @ 2022-07-31 17:11  鹅城小铁匠  阅读(226)  评论(0)    收藏  举报
Fork me on GitHub