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

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.xdnf.cn/news/14353.html

相关文章:

  • 家政维修平台实战27:服务流程搭建
  • 华为云Flexus+DeepSeek征文 | 基于Dify构建股票分析助手
  • Qt事件处理
  • 青少年编程与数学 01-011 系统软件简介 19 SSMS 数据库管理工具
  • Linux上安装Golang及服务服务指南
  • 【学习笔记】Langchain基础(二)
  • 【unitrix】 1.7 规范化常量类型结构(standardization.rs)
  • List的简单模拟实现
  • 软件测试质量的“防”与“治”
  • LeetCode - 69. x 的平方根
  • 万物皆数:构建数字信号处理的数学基石
  • 前端构建工具(Webpack\Vite\esbuild\Rspack)拆包能力深度解析
  • Unity Demo-3DRaceCar详解
  • 如何只导出python项目的依赖包和版本信息
  • 用bilibili一个讲座视频,生成一本科普书籍
  • 简历模板3——数据挖掘工程师5年经验
  • 走线宽度对高频插入损耗的影响
  • YOLOv8模型剪枝实战:DepGraph(依赖图)方法详解
  • 在 CentOS中安装Docker并安装青龙脚本——笔记
  • 【环境配置】解决linux每次打开终端都需要source .bashrc文件的问题
  • [技巧] 接口优化技巧合集
  • 为什么Sigmoind适用于输出层而不是输入层隐藏层
  • 一起来入门深度学习知识体系
  • RabbitMQ 知识详解(Java版)
  • 【无标题[特殊字符]2025华为行程解锁
  • LeetCode - 852. 山脉数组的峰顶索引
  • Salesforce 推出Marketing Cloud Next营销云
  • 【Tip】工具网站
  • comfyui插件和comfyui mac安装
  • 解决文明6 内存相关内容报错EXCEPTION_ACCESS_VIOLATION