一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。
示例 1:
输入: [0,1,3]
输出: 2
示例 2:
输入: [0,1,2,3,4,5,6,7,9]
输出: 8
比较中点数字和下标。如果相同说明之前的数字都相同,不同的数字在中点左边 left=m+1
如果不同说明中点之前有不同的数字 right=m-1
class Solution(object):
def missingNumber(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
i=0
j=len(nums)-1
while i<=j:
m=(i+j)//2
if nums[m]==m:
i=m+1
else:
j=m-1
return i