剑指 Offer 53

一个长度为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
 

限制:

1 <= 数组长度 <= 10000

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/que-shi-de-shu-zi-lcof

双指针

class Solution:
    def missingNumber(self, nums: List[int]) -> int:
        n=len(nums)
        if nums[0]!=0: 
            return 0
        if nums[n-1]<n:
            return n
        i=0
        j=n-1
        while i<j:
            if nums[i+1]-nums[i]==2:return nums[i]+1
            if nums[j]-nums[j-1]==2:return nums[j]-1
            i+=1
            j-=1
原文地址:https://www.cnblogs.com/xxxsans/p/13528093.html