【代码1 左端点】
#include <bits/stdc++.h>
using namespace std;
int n,m,a[100005];
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
}
while(m--){
int k;
cin>>k;
int l,r;
l=1,r=n;
while(l<r){
int mid=(l+r)/2;
if(a[mid]>=k) r=mid;
else l=mid+1;
}
if(a[r]==k) cout<<r<<" ";
else cout<<-1<<" "; //没有找到的情况
}
return 0;
}
【代码2 右端点】
#include <bits/stdc++.h>
using namespace std;
int n,m,a[100005];
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
}
while(m--){
int k;
cin>>k;
int l,r;
l=1,r=