题目
某班级 n 位同学的学号为 0 ~ n-1。点名结果记录于升序数组 records。假定仅有一位同学缺席,请返回他的学号。
示例 1:
输入: records = [0,1,2,3,5]
输出: 4
示例 2:
输入: records = [0, 1, 2, 3, 4, 5, 6, 8]
输出: 7
提示:
1 <= records.length <= 10000
代码
class Solution {
public int takeAttendance(int[] records) {
int l = 0, r = records.length - 1;
while(l < r){
int mid = (r - l) / 2 + l;
if(records[mid] == mid) l = mid + 1;
else r = mid;
}
return records[l] == l ? l + 1 : l;
}
}