题目:
一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0到n-1之内。
在范围0到n-1的n个数字中有且只有一个数字不在该数组中,请找出这个数字。
样例
输入:[0,1,2,4]
输出:3
解答:
这道题要注意一种情况,即缺失的数字为n-1,如 [0, 1, 2, 3] 应该返回 4
class Solution(object):
def getMissingNumber(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
start, end = 0, len(nums) - 1
while(start <= end):
mid = int((start + end)/2)
if mid != nums[mid]:
if mid == 0 or mid - 1 == nums[mid - 1]:
return mid
end = mid - 1
else:
start = mid + 1
if start == len(nums):
return start