当前位置: 首页 > 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;}
};
http://www.dtcms.com/a/250524.html

相关文章:

  • 戴维南端接与 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协程池
  • C#最佳实践:推荐使用泛型而非装箱、拆箱
  • 华为云Flexus+DeepSeek征文 | 基于Dify构建股票分析助手
  • 语音交互革命:基于 Amazon Nova Sonic + MCP 构建下一代沉浸式 Agent
  • LLMs 系列实操科普(6)
  • 嵌入式学习
  • 德国马克斯·普朗克数学研究所:几何朗兰兹猜想
  • JS进阶 Day03
  • 深度理解 CLIP:连接图像与语言的桥梁
  • 人工智能学习26-BP梯度下降
  • 【C语言】计算机组成、计算机语言介绍