不是吧不是吧,怎么最后一个过了第二个没过
查看原帖
不是吧不是吧,怎么最后一个过了第二个没过
417328
最后的旅行楼主2020/11/12 14:55
#include<stdio.h>

int main(void){
	
	int n,m,now,i,l,r,mid,find;
	scanf("%d %d",&n,&m);
	int num[n + 1];
	num[0] = 0;
	for(i = 1;i <= n;i++){
		scanf("%d",&num[i]);
	}
	for(i = 1;i <= m;i++){
		scanf("%d",&now);
		find = -1;
		l = 1;r = n;find = -1;
		while(l <= r){
			mid = l + r >> 1;
			if(mid == 0){
				break;
			}
			if(num[mid] < now){
				l = mid + 1;
			}else if(num[mid] >= now){
				r = mid - 1;
			}
		}
		r++;
		if(num[r] == now){
			find = r;
		}
		printf("%d ",find);
	}
	
	return 0;
}
2020/11/12 14:55
加载中...