提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
今天学习了二分查找算法
提示:以下是本篇文章正文内容,下面案例可供参考
一、【算法】二分查找
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
二、想法
1 二分查找可以帮助我们寻找left和right的中间项mid
我们可以通过一下方法查找: 若目标值target等于中间项[mid],则找到元素; 若目标值target小于中间项[mid],则前往当前范围的左半部分查找,将right置为mid-1; 若目标值target大于中间项[mid],则前往当前范围的右半部分查找,将left置为mid+1; 若指针left跑到了right的右边,代表数组已查询完毕,且数组中没有目标值。由此可得循环的结束条件为left>right
三、案例
输入: [1,3,5,6], 7 输出: 4
class Solution:
def searchInsert(self, nums: List[int], target: int) -> int:
low, high = 0, len(nums)
while low < high:
mid = low + (high - low)
if nums[mid] == target:
return mid
elif nums[mid] > target:
high = mid
elif nums[mid] < target:
low = mid + 1
return low
|