当前位置: 首页 > news >正文

力扣刷题——二分查找

  • 数组是存放在连续内存空间上的相同类型数据的集合
  • 数组下标都是从0开始的
  • 数组内存空间的地址是连续的
  • 正是因为数组在内存空间的地址是连续的,所以我们在删除或者增添元素的时候,就难免要移动其他元素的地址。

使用二分查找法返回的元素下标可能不是唯一的,这些都是使用二分法的前提条件

左闭右开

while (left < right),这里使用 < ,因为left == right在区间[left, right)是没有意义的 if(nums[middle] > target) right 更新为middle,因为当前nums[middle]不等于target,去左区间继续寻找,而寻找区间是左闭右开区间,所以right更新为middle,即:下一个查询区间不会去比较nums[middle]

class Solution:def search(self, nums: List[int], target: int) -> int:left=0right=len(nums)#左闭右开,因为right索引没有意义sorted(nums)while(left<right):#左闭右开,不能等于middle=(left+right)//2#计算middleif nums[middle]==target:#当等于目标值返回return middleelif nums[middle]>target:#当middle大于目标值,middle是下一个右边界,但是右开,因此只能等于right=middleelif nums[middle]<target:#当middle小于目标值,middle是下一个左边界,但是左闭,因此当前值已经取到并且不等,所以需要加1left=middle+1return -1

左闭右闭

while (left <= right) 要使用 <= ,因为left == right是有意义的,所以使用 <=if (nums[middle] > target) right 要赋值为 middle - 1,因为当前这个nums[middle]一定不是target,那么接下来要查找的左区间结束下标位置就是 middle - 1

class Solution:def search(self, nums: List[int], target: int) -> int:left=0right=len(nums)-1#左闭右闭sorted(nums)while(left<=right):#左闭右闭,可以等于middle=(left+right)//2#计算middleif nums[middle]==target:#当等于目标值返回return middleelif nums[middle]>target:#当middle大于目标值,middle是下一个右边界,但是右闭,因此当前值已经取到并且不等,所以需要减1right=middle-1elif nums[middle]<target:#当middle小于目标值,middle是下一个左边界,但是左闭,因此当前值已经取到并且不等,所以需要加1left=middle+1return -1

相关文章:

  • 2022年TASE SCI2区,学习灰狼算法LGWO+随机柔性车间调度,深度解析+性能实测
  • 关于MySql深分页的问题及优化方案
  • 25年春招:携程java开发一面
  • 华为OD机试_2025 B卷_计算最大乘积(Python,100分)(附详细解题思路)
  • 第28节 Node.js 文件系统
  • C++ 引用
  • 【推荐算法课程一】推荐算法介绍-深度学习算法
  • 预测性去匿名化攻击(PDAA):重塑数据安全攻防边界
  • Redis核心数据结构详解与应用
  • 手搓transformer
  • day22
  • Python----神经网络发(神经网络发展历程)
  • Ubuntu系统Docker安装失败问题解决办法
  • 在Vue2项目中引入ElementUI详细步骤
  • 【论文阅读32】预期寿命预测(2024)
  • 用于在多个远程计算机上求解的 Ansoft RSM 设置 - Windows
  • 关于使用EasyExcel、 Vue3实现导入导出功能
  • SpringCloud + MybatisPlus:多租户模式与实现
  • 《网络安全与防护》知识点复习
  • Linux安装C语言环境教程
  • 顺天亿建设网站/谷歌搜索入口365
  • 学做网站要会哪些/百度注册页面
  • 有做外国人的零售网站吗/网站统计分析工具
  • 阿里云 wordpress 邮件/连云港网站seo
  • 制作公众号的软件/搜索引擎优化规则
  • 在网上可以做宣传的有那些网站/提高百度搜索排名