Que05|789. 数的范围

73 阅读1分钟
题目:789. 数的范围 - AcWing题库
代码实现:
import java.util.*;
public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt(), m = sc.nextInt();
        int[] arr = new int[n];
        for (int i = 0; i < n; i++) {
            arr[i] = sc.nextInt();
        }
        while (m-- > 0) {
            int x = sc.nextInt();
            
            int l = 0, r = n - 1;
            while (l < r) {
                int mid = (l + r) / 2;
                if (arr[mid] >= x) {
                    r = mid;
                } else {
                    l = mid + 1;
                }
            }
            if (arr[l] != x) {
                System.out.println("-1 -1");
            } else {
                System.out.print(l + " ");
                l = 0; r = n - 1;
                while (l < r) {
                    int mid = (l + r + 1) / 2;
                    if (arr[mid] <= x) {
                        l = mid;
                    } else {
                        r = mid - 1;
                    }
                }
                System.out.println(l);
            }
        }
    }
}