明显数组有序,因此用二分查找,提高时间复杂度;
判断当前数字是否等于下标,若等于,则继续;
如果不等于,则是大于的情况,更改high指针即可
代码如下:
class Solution:
def missingNumber(self, nums):
low = 0
high = len(nums) - 1
n = len(nums) - 1
while low <= high:
mid = (low + high) //2
if nums[mid] == mid:
low = mid + 1
if nums[mid] > mid:
high = mid - 1
return low
个人理解:
二分查找的题要注意返回的是哪个下标,low还是high;返回对的话相对容易写,可以自己画图试验一次。