2024-03-27(二分查找)
笔记 & 题目链接:
首先要明确是开区间还是闭区间,包含:[left, right)、[ , ]、[ , )、( , ],看确定的区间是不是合法的合法的才行。
解题代码:
class Solution:
def search(self, nums: List[int], target: int) -> int:
# # 第一种
# left = 0
# right = len(nums)-1
# while left<=right:
# middle = (left+right)//2
# if nums[middle] > target:
# right = middle - 1
# elif nums[middle] < target:
# left = middle + 1
# else:
# return middle
# return -1
# 第二种
left = 0
right = len(nums)
while left < right:
middle = (left+right)//2
if nums[middle] > target:
right = middle
elif nums[middle] < target:
left = middle + 1
else:
return middle
return -1