题目

一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。

示例 1:

  1. 输入: [0,1,3]
  2. 输出: 2

示例 2:

  1. 输入: [0,1,2,3,4,5,6,7,9]
  2. 输出: 8

限制:

1 <= 数组长度 <= 10000

答案1

  1. from typing import List
  2. class Solution:
  3. def missingNumber(self, nums: List[int]) -> int:
  4. temp = [i for i in range(len(nums) + 1)]
  5. for i in range(len(nums)):
  6. if nums[i] != temp[i]:
  7. return temp[i]
  8. Solution().missingNumber([0])

Note

生成一个标准递增的序列,匹配两个到缺失的那个

答案2

  1. from typing import List
  2. class Solution:
  3. def missingNumber(self, nums: List[int]) -> int:
  4. for i in range(len(nums)):
  5. if i != nums[i]:
  6. return i
  7. return len(nums)
  8. Solution().missingNumber([0, 1, 2, 4])

Note

直接拿下标进行匹配