排序数组中的搜索问题,首先要想到用二分法来解决
思路:如果nums[mid]==mid,说明从left到mid位置都是有序的,left=mid+1,否则说明left到mid位置不是有序的,right=mid-1。
Python:
class Solution: def missingNumber(self, nums: List[int]) -> int: left,right=0,len(nums)-1 while left<=right: mid=(left+right)//2 if nums[mid]==mid: left=mid+1 else: right=mid-1 return left
借鉴思路:LeetCode刷题力扣题解 | 剑指Offer 53 - II. 0~n-1中缺失的数字 | 思路讲解及Python3代码实现_哔哩哔哩_bilibili
LeetCode刷题力扣题解 | 剑指Offer 53 - II. 0~n-1中缺失的数字 | 思路讲解及Python3代码实现_哔哩哔哩_bilibili