题目描述
import java.util.*;
public class Main{
static int N=100010;
static int[] a=new int[N];
static int n,q;
static void check(int x)
{
int l=0,r=n;
while(l<r)
{
int mid=l+r>>1;
if(a[mid]<x) l=mid+1;
else r=mid;
}
if(a[r]!=x)
{
System.out.println("-1 -1");
return;
}
System.out.printf("%d ",r);
x=x+1;
l=0;
r=n;
while(l<r)
{
int mid=l+r>>1;
if(a[mid]<x) l=mid+1;
else r=mid;
}
System.out.println(r-1);
}
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
n=sc.nextInt();
q=sc.nextInt();
for(int i=0;i<n;i++) a[i]=sc.nextInt();
while(q--!=0)
{
int k=sc.nextInt();
check(k);
}
}
}
样例
blablabla
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla