RE了
查看原帖
RE了
150691
S飞速黑鱼崽B楼主2023/1/18 23:11
#include<bits/stdc++.h>
using namespace std;
int a[100005];
int main() {
   int n,m;
   cin>>n>>m;
   for (int i=1;i<=n;i++) {
   	cin>>a[i];
   }
   for (int i=0;i<m;i++) {
   	int aim;
   	cin>>aim;
   	int l=1,r=n,mid;
   	while (l<r) {
   		mid=l+(r-l)/2;
   		if (a[mid]>=aim) {
   			r=mid;
   		} else {
   			l=mid+1;
   		}
   	}
   	if(a[r]==aim) {
   		cout << r << " ";
   	} else {
   		cout << -1 << " ";
   	}
   }
   return 0;
}

为什么二分会RE啊,查找应该是O(logn),边界条件应该都没问题

2023/1/18 23:11
加载中...