#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),边界条件应该都没问题