public static final int find(int[] arr) { //利用二分法查找 int start = 0; int end = arr.length - 1; int mid; while (true) { if (start == end - 1) { System.out.println(start + 1); return arr[start] + 1; } mid = (start + end) / 2; if (arr[mid] - arr[start] > mid - start) { end = mid; continue; } else if (arr[end] - arr[mid] > end - mid) { start = mid; continue; } else { System.out.println("没有发现缺失字段"); return -1; } } }