题目
解题
def takeAttendance(records):
"""
找出缺席学生的学号。
参数:
records (list of int): 点名记录的升序数组
返回:
int: 缺席学生的学号
"""
left, right = 0, len(records) - 1
while left <= right:
mid = left + (right - left) // 2
# 如果 records[mid] == mid,说明缺失学号在右半部分
if records[mid] == mid:
left = mid + 1
else:
right = mid - 1
# 最后 left 的位置就是缺席的学号
return left
records = [0, 1, 2, 3, 5] # 学号 4 缺席
missing_student = takeAttendance(records)
print(missing_student) # 4