最近考研正好复习到数据结构,趁着这个机会再刷点题,写了没时间更上来,看有特别思路的更一下
某班级 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(object):def takeAttendance(self, records):""":type records: List[int]:rtype: int"""i,j = 0,len(records)-1while i <= j:mid = (i + j) // 2if records[mid] == mid:i = mid +1else :j = mid -1return i