2分80分求助
查看原帖
2分80分求助
597089
zhangyuanxiao楼主2022/9/5 13:55

代码

#include<iostream>
#include<cstdio>
using namespace std;

int n,m,a[1000005],q[100005],ans;

int search(int L,int R,int k){
	int mid;
	while(R>=L){
		mid=(R+L)/2;
		if(a[mid]==k){
			if(a[mid-1]!=k) return mid;
			else R=mid-1;
		}
		else if(a[mid]>k) R=mid-1;
		else L=mid+1;
	}
	return -1;
}

int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++) scanf("%d",&a[i]);
	for(int i=1;i<=m;i++) scanf("%d",&q[i]);
	for(int i=1;i<=m;i++){
		ans=search(1,n,q[i]);
		printf("%d ",ans);
	}
	return 0;
}
2022/9/5 13:55
加载中...