剑指 Offer 53 - II. 0~n-1中缺失的数字 python
程序员文章站
2024-03-07 22:56:03
...
明显数组有序,因此用二分查找,提高时间复杂度;
判断当前数字是否等于下标,若等于,则继续;
如果不等于,则是大于的情况,更改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;返回对的话相对容易写,可以自己画图试验一次。
上一篇: 北邮 BOJ 132 打印字符串
推荐阅读
-
剑指 Offer 53 - II. 0~n-1中缺失的数字 python
-
剑指 Offer 53 - II. 0~n-1中缺失的数字
-
[leetCode]剑指 Offer 53 - II. 0~n-1中缺失的数字
-
[LeetCode]剑指 Offer 53 - II. 0~n-1中缺失的数字
-
Leetcode 剑指 Offer 53 - II. 0~n-1中缺失的数字
-
剑指offer【53】:0~n-1数组缺失值
-
【剑指 Offer 53 - II】0~n-1中缺失的数字
-
剑指offer书(53)-2:0-n-1中缺失的数字
-
剑指OFFER----53-2、0~n-1中缺失的数字(js实现)
-
剑指 Offer 53 - II. 0~n-1中缺失的数字