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

LeetCode 35. 搜索插入位置

题目链接

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

题目解析 

该题我们可以采用二分查找的方式,我们可以把数组分为,小于target的一边儿和大于等于target的一边儿。

当mid=left+(right-left)下标所对应的数大于等于target的时候,说明target落在了mid的左边,因此应该改变right=mid;

当mid=left+(right-left)下标所对应的数小于target的时候,说明target落在了mid的右边,此时应改变left=mid+1;

最后考虑一下如果target大于该数组的最后一个元素的时候应该返回的下标。

代码

class Solution 
{
public:int searchInsert(vector<int>& nums, int target) {int n=nums.size();int left = 0,right=n-1;// 设target的下标为index// 小于target的[left,index-1]// 区间分为大于等于target的 [index,right]while(left<right){int mid=left+(right-left)/2;// 该if条件成立说明mid落在了[index,right]// 因此应该改变右边界if(nums[mid]>=target)right=mid;// 该else条件成立说明mid落在了[left,index-1]// 因此应该改变左边界else left=mid+1;}if(nums[left]<target) return right+1;return left;}
};

http://www.lryc.cn/news/164155.html

相关文章:

  • 7年经验之谈 —— Web测试是什么,有何特点?
  • 【数据结构】前言概况 - 树
  • MySQL——事务
  • 虚拟机Ubuntu操作系统最基本终端命令(安装包+详细解释+详细演示)
  • Android 11.0 当系统内置两个Launcher时默认设置Launcher3以外的那个Launcher为默认Launcher
  • NO5.心愿打印机
  • cudart.so vs cuda.so的区别
  • Oracle集群管理-19C集群禁用numa和大页内存特性
  • 题目:2726.使用方法链的计算器
  • 基于ASP.NET的驾校管理系统设计与实现
  • 第一章 计算机系统概述 三、操作系统的发展与分类
  • 【2023年11月第四版教材】第12章《质量管理》(第二部分)
  • metinfo __ 6.0.0 __ file-read
  • 打造高效的私密论坛网站:Cpolar内网穿透+HadSky轻量级搭建指南
  • MediaCodec源码分析 configure流程
  • 借助ChatGPT使用Pandas实现Excel数据汇总
  • [学习笔记]PageRank算法
  • 【洛谷算法题】P5704-字母转换【入门1顺序结构】
  • Pytorch——查找、替换module相关操作
  • 组件安全以及漏洞复现
  • 人工智能安全-4-小样本问题
  • iOS 17中的Safari配置文件改变了游戏规则,那么如何设置呢
  • AC自动机小结
  • 【C++】构造函数分类 ③ ( 调用有参构造函数的方法 | 括号法 | 等号法 )
  • uni-app 之 uni.request 网络请求API接口
  • 代码随想录33|509. 斐波那契数,70. 爬楼梯,746. 使用最小花费爬楼梯, 34. 在排序数组中查找元素的第一个和最后一个位置
  • 什么是Executors框架?
  • 【kafka】kafka单节点/集群搭建
  • 如何进行机器学习
  • Vue项目使用axios配置请求拦截和响应拦截以及判断请求超时处理提示