AcWing 789. 数的范围(Java)
原题链接
简单
作者:
火球大的脸盆
,
2022-07-06 19:56:12
,
所有人可见
,
阅读 104
import java.util.Scanner;
public class Main {
public static final int N = 100010;
public static int n, q;
public static int[] a = new int[N];
public static int findLeft(int x) {
int l = 0, r = n - 1;
while (l < r) {
int mid = l + r >> 1;
if (a[mid] >= x) r = mid;
else l = mid + 1;
}
if (a[l] == x) return l;
else return -1;
}
public static int findRight(int x) {
int l = 0, r = n - 1;
while (l < r) {
int mid = l + r + 1 >> 1;
if (a[mid] <= x) l = mid;
else r = mid - 1;
}
if (a[l] == x) return l;
else return -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 x = sc.nextInt();
System.out.printf("%d %d\n", findLeft(x), findRight(x));
}
}
}