力扣刷题笔记:二分查找法python模板(广泛使用,直接套用,倍增法也属于二分法的一种)

二分查找法思路:

顾名思义,二分查找就是不停地以二分的形式缩小查找范围,最终找到所需要的元素。

时间复杂度:O(logn)

二分查找模板写法:

class Solution:
    def search(self, nums: List[int], target: int) -> int:
        left, right = 0, len(nums) - 1
        while left <= right:
            mid = left + (right-left) // 2  # 计算中间值
            if target == nums[mid]:   # 判断中间值是否满足条件
            	return mid  # 刚好找到就返回找到的中间值
            if target < nums[mid]:  # 中间值大了就缩小右边的区间
                right = mid - 1
            else :
                left = mid + 1   # 中间值小了就缩小左边的区间
        return -1  # 没找到则返回-1

典型例题:
1、力扣441.排列硬币
https://blog.csdn.net/weixin_44414948/article/details/113832518
2、力扣167.两数之和 II - 输入有序数组
https://blog.csdn.net/weixin_44414948/article/details/113826224
3、力扣50.Pow(x, n)
https://blog.csdn.net/weixin_44414948/article/details/113820505

你可能感兴趣的:(工具脚本,刷题笔记,python,算法,二分法)