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

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

链接: 原文链接.

class Solution:
    # 自己写的方法,比较啰嗦一些。
    # def missingNumber(self, nums: List[int]) -> int:
    #     if nums[0] != 0:
    #         return 0
    #     else:
    #         for i in range(len(nums)):
    #             if i == len(nums)-1:
    #                 return i+1
    #             if nums[i] != nums[i+1]-1:
    #                 return i+1
    # 大佬写的代码,排序数组中的二分问题,用的是二分法解决的。
    # 二分查找的大概思路是:
    # [0 1 2 3 5]
    # start=0,end=len(list)-1
    # middle = (start+end)//2
    # 判断一下list[middle]是否等于middle
    # 如果等于,则需要找的数在 (middle+1)-end 的范围里
    # 否则,就在 0-(middle-1)的范围里.
    # 循环
    #  0 4 2
    #  3 4 3
    #  4 4 4
    def missingNumber(self, nums: List[int]) -> int:
        start, end = 0, len(nums)-1
        while start <= end: 
            middle = (start+end)//2
            if nums[middle] == middle: start += 1
            else: end -= 1
        return start
相关文章
|
4月前
|
索引
剑指 Offer 53 - II:0~n-1中缺失的数字
剑指 Offer 53 - II:0~n-1中缺失的数字
26 0
|
4月前
剑指 Offer 03:数组中重复的数字
剑指 Offer 03:数组中重复的数字
22 0
|
4月前
剑指 Offer 44:数字序列中某一位的数字
剑指 Offer 44:数字序列中某一位的数字
21 0
|
4月前
剑指 Offer 56 - II:数组中数字出现的次数 II
剑指 Offer 56 - II:数组中数字出现的次数 II
39 0
|
4月前
剑指 Offer 56 - I:数组中数字出现的次数
剑指 Offer 56 - I:数组中数字出现的次数
38 0
|
4月前
剑指 Offer 20:表示数值的字符串
剑指 Offer 20:表示数值的字符串
34 0
|
4月前
剑指 Offer 57:和为s的两个数字
剑指 Offer 57:和为s的两个数字
31 0
|
4月前
剑指 Offer 43:1~n 整数中 1 出现的次数
剑指 Offer 43:1~n 整数中 1 出现的次数
43 0
|
索引 Cloud Native
【刷题日记】剑指 Offer 53 - II. 0~n-1中缺失的数字
本次刷题日记的第 22 篇,力扣题为:剑指 Offer 53 - II. 0~n-1中缺失的数字 ,简单
【刷题日记】剑指 Offer 53 - II. 0~n-1中缺失的数字