class Solution:
def missingNumber(self, nums: List[int]) -> int:
"""
排序数组:
排序数组中的搜索问题,首先想到 二分法 解决 O(logN)
分为左右两半数组
左半部分满足 nums[i] = i
右半部分满足 nums[i] 不等于 i
二分查找区间
0 1 3 缺2
"""
i = 0
j = len(nums)-1
while i<=j:
mid = i + (j-i) // 2
if nums[mid] == mid:
# 在右边查找了
i = mid + 1
else:
# 不等于的情况
# 在左边查找
j = mid - 1
return i
每日一道Leetcode - 剑指 Offer 53 - II. 0~n-1中缺失的数字 【二分查找】
最新推荐文章于 2021-10-18 18:20:25 发布