題目描述:
輸入?𝑛n?個不超過?109109?的單調不減的(就是后面的數字不小于前面的數字)非負整數?𝑎1,𝑎2,…,𝑎𝑛a1?,a2?,…,an?,然后進行?𝑚m?次詢問。對于每次詢問,給出一個整數?𝑞q,要求輸出這個數字在序列中第一次出現的編號,如果沒有找到的話輸出??1?1?。
代碼:
package lanqiao;import java.util.*;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int m = sc.nextInt();int[] num = new int[n + 1];for(int i = 1;i <= n;i ++){num[i] = sc.nextInt();}while(m -- > 0){int target = sc.nextInt();int left = 1;int right = n;//二分模板while(left < right){int mid = (left + right)/2;if(num[mid] < target){left = mid + 1;}else{right = mid;}}if(num[left] == target){System.out.print(left + " ");}else{System.out.print(-1 + " ");}}}
}