题目:
一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。
leetcode暴力遍历
思路:
数组nums长度为r(即题目中的n-1)
下标对应0~r-1
数组中每个数字在0~r之内,有且只有有一个数字不在
for循环暴力遍历range(0,r)【左闭右开,不包括r】,i!=num[i]时,return i,
情况① 缺少的数字是0~r-1,for循环遍历到该数字,就会进if语句,return,函数终止运行
情况② 缺少的数字是r,for循环遍历完 ,仍未找到该数字,证明缺少的数字是r,return r。
代码:
class Solution:
def missingNumber(self, nums: List[int]) -> int:
r=len(nums)#r即n-1
for i in range(r):
if i!=nums[i]:
return i
return i+1#for循环出来后的i是r-1,这里也可以直接写 return r