求助最后一个点超时
查看原帖
求助最后一个点超时
405851
peaceandlove2002楼主2021/9/8 09:21
#include <stdio.h>
#include <stdlib.h>
int main()
{
	int n,m;
	scanf("%d %d",&n,&m);
	int a[n+5],i;
	for(i=0;i<n;i++){
		scanf("%d",&a[i]);
	}
	int j=0;
	for(i=0;i<m;i++){
		int s,f=0,u;
		scanf("%d",&s);
		int left=0,right=n-1;
		while(left<=right){
			int middle=(right-left)/2+left;
			if(s<a[middle]) right=middle-1;
			else if(s>a[middle]) left=middle+1;
			else if(s==a[middle]) {
			for(u=middle-1;u>=0;u--)
				if(a[u]!=s) break;
		
			printf("%d ",u+2);
			f=1;
			break;
		}
	}
	if(f==0) 
	printf("-1 ");
	
}
    
}
2021/9/8 09:21
加载中...