AcWing 789. 数的范围
原题链接
简单
作者:
不知名路人
,
2021-04-11 10:30:18
,
所有人可见
,
阅读 383
import java.util.Scanner;
public class Main {
static int N=100010;
static int[] a=new int[N];
public static void main(String[] args) {
Scanner in =new Scanner(System.in);
int n,q;
n=in.nextInt();
q=in.nextInt();
for(int i=0;i<n;i++){
a[i]=in.nextInt();
}
while (q--!=0){
int x=in.nextInt();
int l=0,r=n-1;
//二分
while (l<r){
int mid=(l+r)/2;//找左边第一次出现的目标数字
if(a[mid]>=x){
r=mid;
}else {
l=mid+1;
}
}
if(a[r]!=x){
System.out.println("-1 -1");
}else {
System.out.print(r+" ");
l=0;
r=n-1;
while (l<r){
int mid=(l+r+1)/2;//找最后一次目标数字
if(a[mid]<=x){
l=mid;
}else {
r=mid-1;
}
}
System.out.println(r);
}
}
}
}