劍指Offer 0到n-1中缺失的數字
阿新 • • 發佈:2018-12-10
題目:
一個長度為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