题解 | #二分查找-I#
二分查找-I
https://www.nowcoder.com/practice/d3df40bd23594118b57554129cadf47b
解题思路
时间复杂度为O(logn),空间复杂度为O(1)。
class Solution:
def search(self , nums: List[int], target: int) -> int:
# 注意判断数组为空的情况
if len(nums) == 0:
return -1
left = 0
right = len(nums)
while left <= right: # 注意临界条件,小于等于
mid = (left+right)//2
# print(mid, nums[mid])
if nums[mid] == target:
return mid
elif nums[mid] > target:
right = mid - 1
else:
left = mid + 1
return -1
