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

LeetCode - 35. 搜索插入位置

题目

35. 搜索插入位置 - 力扣(LeetCode)

思路

思路很简单,就是正常的二分写法,但是要注意最后的返回值是left而不是right

读者可能出现的错误写法

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

主要有一个错误:循环结束后的返回值应该是 left 而不是 right。

在二分查找循环结束后(当 left > right 时):

  • left 指向第一个大于等于 target 的位置
  • right 指向最后一个小于 target 的位置

对于搜索插入位置问题,我们需要返回的是第一个大于等于 target 的位置,即 left。

正确写法

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

相关文章:

  • 戴维南端接与 RC端接
  • static的三种作用
  • 重读《人件》Peopleware -(16)Ⅲ 适当人选 Ⅰ霍恩布洛尔因素(上)
  • callback的原理和机制
  • <10>-MySQL索引特性
  • 【电声耦合】TaOsSi和NbOsSi超导中的电子-声子耦合
  • c++编译第三方项目报错# pragma warning( disable: 4273)
  • 多线程下 到底是事务内部开启锁 还是先加锁再开启事务?
  • AnimateCC及CreateJS:打飞机的4版本V1、V2、V3、V4
  • hot100 -- 12.栈系列
  • 金蝶云星空BOS开发
  • Linux进程间通信(IPC)详解:从入门到理解
  • 深度分析Javascript中的Promise
  • 人工智能学习19-Pandas-设置
  • 当遇到“提交失败:404”的问题时,通常表明前端请求的URL无法正确匹配到后端的Servlet或资源。
  • aflplusplus:开源的模糊测试工具!全参数详细教程!Kali Linux教程!(四)
  • 【办公类-25-05】20250514 Python模拟UIBOT上传园园通截图(自动最小化界面,时间部分的删除和黏贴)
  • SCADA|KingSCADA对比显示任意几条实时曲线的方法
  • 理论物理学中的规范场论与全息原理
  • Go语言底层(五): 深入浅出Go语言的ants协程池
  • 简述电子商务网站开发的基本原则/电子商务网站有哪些?
  • 外国出名的设计网站/卡点视频软件下载
  • 网站建设需求调研/免费发帖平台
  • 建设手机网站费用吗/如何免费创建自己的网站平台
  • 做网页局域网站点配置/哪些网站可以seo
  • 网站 html/应用商店关键词优化