剑指 Offer 53 - II. 0~n-1中缺失的数字
1.题目
2.我的解决方案
- 使用二分查找法(标准的二分查找代码)
class Solution:
def missingNumber(self, nums: List[int]) -> int:
"""
使用二分查找法
中间:索引是不是和数字相等,相等,右半部分,不相等,左半部分
"""
low = 0
high = len(nums) -1
while low <= high:
mid = (low+high) // 2
if mid != nums[mid]:
high = mid -1
else:
low = mid + 1
return low
- 时间复杂度: O ( l o g n ) O(logn) O(logn)
- 空间复杂度: O ( 1 ) O(1) O(1)