题:一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。
- 排序数组中的搜索问题,首先想到 二分法 解决。
#从左到右,第一个num[i]不等于i的元素。缺少i
class Solution:
def missingNumber(self, nums: List[int]) -> int:
i,j=0,len(nums)-1
while i<=j:
m=(i+j)//2
if nums[m]==m:
i=m+1#正确 往右后移动
elif nums[m]!=m:
j=m-1#往左挪到底是左边哪个不正确
return i