题解 | 二分查找
二分查找
https://www.nowcoder.com/practice/fa94f02f5a07467084e72179bf8e4e19
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt(), m = sc.nextInt();
int[] nums = new int[n];
for (int i = 0; i < n; i++) nums[i] = sc.nextInt();
int left = 0, right = n - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (nums[mid] < m) left = mid + 1;
else if (nums[mid] > m) right = mid - 1;
else {
System.out.println(mid);
return;
}
}
System.out.println(-1);
sc.close();
}
}
查看15道真题和解析