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

力扣hot100:搜索插入位置

题目描述:

题目分析:

本题是一个二分查找,核心思路是通过计算中心点和目标值的大小关系,以此在一个while循环里不断更新左右端点,知道左端点大于右端点。

代码:

class Solution { public int searchInsert(int[] nums, int target) { int n=nums.length; int right=n-1; int left=0; while(left<=right){ int mid=(right-left)/2+left; if(target>nums[mid]){ left=mid+1; }else{ right=mid-1; } } return left; } }

代码要点分析:

1.中心点的计算为mid=(right-left)/2+left,这样做是为了防止整数溢出。

2.left<=right,若目标值存在于数组中,最后一个可能的leftright是相同的,left < right会错过一些情况。具体来说,在left == right时,依然需要检查这个位置。

3.不必判断target==nums[mid]的情况,在target==nums[mid]时直接把mid更新为right-1,如果后续范围数组里还有target,那么二分查找依旧能查找到范围里的target;如果这已经是最左边的target,那么随后循环里就会出现target>nums[mid]的情况,此时left就会不断右移,知道nums[left]=target。

http://www.jsqmd.com/news/84561/

相关文章:

  • 探索含光伏、火电与飞轮储能系统的奇妙调频之旅
  • 高效获取高质量外链:2026年必须掌握的10个核心策略
  • Flutter国际化(i18n)实现详解
  • 【高可用系统监控的设计原则与实践】
  • 基于 STM32 的太阳能 MPPT 充电控制器设计
  • 30分钟掌握Semgrep:代码安全检查从入门到精通
  • YOLOv13涨点改进 | 独家创新首发、Conv卷积改进篇 | SCI一区 2025 | 引入MSConvStar多尺度卷积星形模块,有效增强捕捉多范围特征,助力目标检测、图像分割、图像分类高效涨点
  • LLC谐振变换器恒压恒流双竞争闭环Simulink仿真探索
  • YOLOv13涨点改进 | 全网独家创新、Neck特征融合改进篇 | TGRS 2025顶刊 | 引入ADSF自适应特征融合模块,自适应融合浅层特征与深层特征,适合红外小目标检测、图像分割等有效涨点
  • 折叠与影像:高端手机技术演进的两大方向
  • Feign基本知识
  • 每天一个假设-day5:如何提高测试人员和开发人员的协作效率
  • 常用软件工具的使用(1) ---- git 的安装和基础操作
  • 视觉色选机:如何挑选技术可靠与服务完善的设备厂家
  • YOLOv11涨点改进 | 全网独家创新、Neck特征融合改进篇 | TGRS 2025顶刊 | 引入ADSF自适应特征融合模块,自适应融合浅层特征与深层特征,适合红外小目标检测、图像分割等有效涨点
  • 北京婚介的狂妄红娘:我在她的嘲讽中找到了幸福
  • 双电机纯电动汽车整车仿真模型,基于Matlab/Simulink的双电机前后轴双驱电动汽车仿真模型
  • 【JavaWeb】ServletConfig为Servlet提供配置参数
  • Linux编程网络基础
  • 含SOP配电网重构 关键词:配网重构 yalmip 二阶锥 参考文档:《二阶锥松弛在配电网最优...
  • C++中多态
  • 【每日一读Day9】传统搜索引擎会消失吗?LLM?
  • Labview模拟温度检测报警系统 1、通过设定上下限温度,通过比较温度来到达指示灯的闪烁情况
  • 岐金兰洞见:落地之障,在认知范式,不在技术路径
  • STM32学习_新建工程
  • 测试 - 单元测试(JUnit)
  • Flutter 测试驱动开发的基本流程
  • 二、在freertos中对应esp01s模块的ap模式下的通信测试。
  • 测试 - 概览
  • Qt定时器线程使用全解析