手写二分样例都过不去???求改错
查看原帖
手写二分样例都过不去???求改错
181715
gjh303987897楼主2021/10/11 19:59
#include<iostream>
#include<cstdio>
using namespace std;
int n,m,q,z;
int a[1000001]; 
int sec(int l,int r){
	if(l==r){
		if(q==a[l]) return l;
		else return -1;
	}
	int mid=(l+r)/2;
	if(a[mid]>q) sec(1,mid-1);
	if(a[mid]<q) sec(mid,n);
	if(a[mid]==q) return mid;
	
}
int main() 
{
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++) scanf("%d",&a[i]);
	for(int i=1;i<=m;i++){
		cin>>q;
		cout<<sec(1,n);
	} 
	return 0;
}
2021/10/11 19:59
加载中...