如题。
谢谢大佬。
import java.util.Scanner;
import java.util.Arrays;
public class Algorithm_1_6 {
public static int []array;
// public static int []question;
public static int []answer;
public static int BinarySearch(int num) {
int l = -1,r = array.length,m;
while(l + 1 != r) {
m = (l + r) >> 1;
/*
if(array[m] == num) return m + 1;
else if(array[m] > num) r = m; // if middle element if bigger than target ,find it in left part
else l = m;
*/
if (array[m] < num) l = m;
else r = m;
}
return array[l + 1] == num ? l + 2 : -1;
}
public static void main(String []args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int q = input.nextInt();
int question;
int k = 0;
array = new int[n];
answer = new int[q];
for(int idx = 0;idx < n;idx += 1) {
array[idx] = input.nextInt();
}
for(int idx = 0;idx < q;idx += 1) {
question = input.nextInt();
answer[k ++] = BinarySearch(question);
}
for(int idx = 0;idx < k;idx += 1) {
System.out.print(answer[idx]);
if(idx != k - 1) System.out.print(" ");
}
input.close();
}
}