求解惑。这是个bug 还是什么
查看原帖
求解惑。这是个bug 还是什么
423006
傻肥狍子楼主2021/7/10 20:34
我的第一行注释撤销掉能够正常的输出,但是我用第二个注释的  for 输出 为什么都是空的呢?

#include <bits/stdc++.h>
using namespace std;
const int maxn=1e6+6;
int n,m;  
int a[maxn],b[maxn];
int main()
{
	scanf("%d%d",&n,&m);
	for(int i=0; i<n; i++) scanf("%d",&a[i]);
	int q=0;
	while(m--){
		int x;    //当前要查询的数 
		int l=0;   //左边界 
		int r=n-1; //右边界
		scanf("%d",&x);
		while(l<r){
			int mid=(l+r)>>1;   //除以二
			if(a[mid]<x) l=mid+1;
			else  r=mid;
		}
		if(a[l]!=x) b[q++]=-1;
		else b[q++]=l+1;
//		printf("%d ",b[q-1]);
	}
//	for(int i=0; i<m; i++)
//		printf("%d ",b[i]);
	return 0;
 } 
2021/7/10 20:34
加载中...