问下dalao,怎样寻第一个k?
查看原帖
问下dalao,怎样寻第一个k?
552461
shangyuang楼主2022/8/12 08:45

code:

#include<bits/stdc++.h>
using namespace std;
int n,m,a[1000001],i,j,k,l,r;bool b=1;
int main(){
	cin>>n>>m;
	for(i=1;i<=n;i++){
		scanf("%d",&a[i]);
		
	}
	for(i=1;i<=m;i++){
		cin>>k;
		int l=1,r=n+1,mid;
		b=0;
		while(l<=r){
			mid=l+(r-l)/2;
			if(a[mid]==k){
				printf("%d ",mid);
				b=1;
				break;
			}
			if(a[mid]>k){
				r=mid-1;
			}
			if(a[mid]<k){
				l=mid+1;
			}
		}
		if(!b){
			printf("-1 ");
		}
	}
	return 0;
}

求助!!!

2022/8/12 08:45
加载中...