1. 程式人生 > >劍指Offer 0到n-1中缺失的數字

劍指Offer 0到n-1中缺失的數字

題目:

一個長度為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