剑指 Offer 53 - II. 0~n-1中缺失的数字
https://leetcode-cn.com/problems/que-shi-de-shu-zi-lcof/
class Solution(object):
def missingNumber(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
n=len(nums)
#如果缺失的数字不在中间,不能用二分查找
if nums[0]!=0:
return 0
elif nums[n-1]==n-1:
return n
#缺失的数字在中间,用二分查找
left=0
right=n-1
mid=(left+right)//2
while left<=right:
#print(left,right,mid)
if nums[mid]!=mid and nums[mid-1]==mid-1:
return mid
if nums[mid]==mid:
left=mid+1
else:
right=mid-1
mid=(left+right)//2
return n