二分
整数二分
从左边开始查找
# 查找条件存在于左边界 比如 target <= nums[mid], 从左边开始查找
def l_bin_search(left: int, right: int):
while left < right:
mid = left + ((right - left) >> 1)
if check(mid):
right = mid
continue
left = mid + 1
return left从右边开始查找
# 查找条件存在于右边界 比如 target >= nums[mid], 从右边开始查找
def r_bin_search(left: int, right: int):
while left < right:
mid = left + ((right - left + 1) >> 1) # 注意此处需要进行+1操作否则有些case会陷入死循环
if check(mid):
left = mid
continue
right = mid - 1
return left练习
浮点数二分
利用浮点数二分求平方根
数的三次方根
最后更新于