优化后的代码,样例能过,但是全是WA
查看原帖
优化后的代码,样例能过,但是全是WA
1314163
bu_chi_suan楼主2024/3/24 17:23
#include<stdio.h>

int n,m,a[1000001],b[100001];

void search(int* p1,int q)
{
	int mid,left=0,right=n-1,f=-1;
	
	while(left<=right)
	{
		mid=left+(right-left)/2;
		if(p1[mid]<q)
		{
			left=mid+1;
		}
		else if(p1[mid]>=q)
		{
			right=mid-1;
		}
	}
	if(p1[mid]==q)
	{
	    printf("%d ",mid+1);
	    return;
	}
	else
	{
	    printf("%d ",-1);
	    return;
	}
}

int main()
{
	scanf("%d%d",&n,&m);
	 for(int i=0;i<n;i++)
	 {
	 	scanf("%d",&a[i]);
	 }
	 for(int i=0;i<m;i++)
	 {
	 	scanf("%d",&b[i]);
	 }
	 for(int i=0;i<m;i++)
	 {
	 	search(a,b[i]);
	 }
	return 0;
}
2024/3/24 17:23
加载中...