二分模板,为什么过不了,求大佬解答
查看原帖
二分模板,为什么过不了,求大佬解答
901475
Ginaaaa楼主2023/3/25 10:48
#include<stdio.h>
int n,m;
int x;
int a[100005];
int check(int target){
	int left=0;
	int right=n-1;

	while(left<=right){
		int mid=left+right>>1;
		if(a[mid]>target) right=mid-1;
		else if(a[mid]<target) left=mid+1;
		else return mid;
	}
	return -1;
}
int main(){
	scanf("%d %d",&n,&m);
	for(int i=1;i<=n;i++) 
	  scanf("%d",&a[i]);
    while(m--){
    scanf("%d",&x);
	int res = check(x);
	printf("%d ",res);
	}
	return 0;
}
2023/3/25 10:48
加载中...