剑指 Offer 53 - II. 0~n-1中缺失的数字 python

剑指 Offer 53 - II. 0~n-1中缺失的数字 python_第1张图片
明显数组有序,因此用二分查找,提高时间复杂度;

判断当前数字是否等于下标,若等于,则继续;
如果不等于,则是大于的情况,更改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;返回对的话相对容易写,可以自己画图试验一次。

你可能感兴趣的:(leetcode)