leecode-二分查找

news2025/1/11 6:06:16

题目

题目链接
在这里插入图片描述

分析

大家都知道二分查找其实有很多种写法,这里一个比较巧妙地点就是,这个写法可以在返回插入位置的时候直接返回i,不用进行处理。
那么为什么这种写法可以呢? 我们来分析一下,首先我们的写法是:

  1. 当target不等于nums[mid]时,我们选择了i=mid+1,j=mid-1
  2. while循环结束条件是i>j

举例分析:如果我们的输入是 1 3 4 5 2

  1. i=0,j=3,mid=1,因为3>2,因此j=mid-1=0
  2. while循环没有结束,继续。
  3. i=0,j=0,mid=0,因为1<2,因此i=mid+1=1
  4. i>j,while循环结束

可以看到当target不存在于数组中时,会以nums[i]<target,i=mid+1>j结束循环,nums[i]就是刚好小于target的那个数字,而nums[i+1]就是大于target的数字。

AC代码

class Solution {
public:
    int searchInsert(vector<int>& nums, int target) {
        int i=0;
        int j=nums.size()-1;
        while(i<=j){
            int mid=(i+j)/2;
            if(nums[mid]==target){
                return mid;
            }
            else if(nums[mid]<target){
                i=mid+1;
            }
            else if(nums[mid]>target){
                j=mid-1;
            }
        }
        return i;//返回插入的位置
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/694418.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

区块链技术-溯源管理系统源码

技术架构&#xff1a;spring bootmybatiseasyuimysql 粮油生产质量追溯系统 粮油生产质量追溯系统可广泛用于粮油生产加工领域。实现种植主体、种植基地、生产计划、压榨、精炼、包装、销售、物料管理、检验检测等各个环节的数据采集&#xff0c;达到正向可追踪&#xff0c;反…

java agent 实战 监控Elasticsearch(只需依赖一个jar 完全无侵入式)解决jar启动问题

需求背景 agent是什么大家应该很熟悉了&#xff0c;今天我们来实战下&#xff0c;效果就是为项目所有elasticsearch请求方法增加耗时告警&#xff01; 学会Java Agent你能做什么&#xff1f; 自动添加getter/setter方法的工具lombok就使用了这一技术btrace、Arthas和housemd…

【C++初阶(一)】学习前言以及命名空间

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:C初阶之路⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习排序知识   &#x1f51d;&#x1f51d; 命名空间 1. 前言2. C发展历史3. C现状4. C语…

Draw.io 如何编辑复杂的公式

Tips&#xff1a;Draw.io本身无法直接编辑复杂的公式或者数学表达式 需要转为Latex格式才能插入 >Latex在线编辑公式网址&#xff1a;https://www.latexlive.com 具体操作流程 1 进入https://www.latexlive.com 例如编辑如下公式&#xff1a; 2 开启Draw.io的数学排版 3…

postman中发送post请求保存数据到数据库中文乱码

postman&#xff1a; 以为是header中的问题&#xff1a;加上这俩问题并未解决&#xff1a; 以为是数据库的问题&#xff1a;改成这个也没解决 后台打印也没问题&#xff1a; book:::Book{idnull, type类别111, name测试名称, description测试描述数据} 最后的解决方法&…

如何对pdf文件大小进行压缩?怎么压缩pdf文件kb?

PDF资料因为嵌入了太多的图文信息&#xff0c;那么怎么才能压缩pdf文件呢&#xff1f;本篇就来教大家如何轻松完成pdf在线压缩&#xff0c;小伙伴们学会之后&#xff0c;就不用担心因为pdf过大不方便使用了&#xff0c;一起来了解一下pdf压缩&#xff08;https://www.yasuotu.c…

VisualStudio离线包制作

因为需要&#xff0c;需要制作VisualStudio离线包&#xff0c;之前尝试了很多的方案&#xff0c;均没有下载成功。今天偶然看到一个可行的方案&#xff0c;这里在这里分享下。 从微软官网下载VisualStudio离线包 1 下载安装文件 visualstudio官网 首先进入到官网中&#xff0…

WORDPRESS REST API 学习,使用VSCode 的 REST client 插件测试

WORDPRESS 的 REST API 本身是没有身份验证的&#xff0c;我安装了 miniOrange 的 WordPress REST API Authentication 免费部分只有 Basic Authentication 和 JWT Authentication &#xff0c; 作为学习 REST API 够用了。 一般使用 postman 测试 api &#xff0c;后来卸载了…

微软Surface Book 2终止更新日前推迟,将与Surface Pro 6同日结束服务

近日有消息称&#xff0c;微软公布了旗下Surface系列设备的更新支持终止日期&#xff0c;并且包括新发布的设备和前代产品。 早在本月23日&#xff0c;微软就为Surface Book 2推送了新的固件&#xff0c;主要提升了Surface Dock 2的稳定性&#xff0c;及其他一些安全更新。  …

需要买apple pencil吗?苹果平板触控笔推荐

随着科技的进步&#xff0c;各种类型的电容笔相继问世。一支好的电容笔&#xff0c;不仅能大大提高我们的工作效率&#xff0c;而且能大大提高我们的学习效率。平替电容笔&#xff0c;无论从技术上&#xff0c;还是从产品品质上来看&#xff0c;都有很大的发展空间&#xff0c;…

黑盒测试中常见的错误修复方法

引言&#xff1a; 黑盒测试是软件测试过程中常用的一种方法&#xff0c;它着重于测试软件的功能而不考虑内部实现细节。然而&#xff0c;在进行黑盒测试时&#xff0c;可能会发现各种类型的错误&#xff0c;如功能缺陷、界面问题和性能瓶颈等。为了确保软件质量和稳定性&#x…

【Visual Studio Code】C++程序的头文件红色波浪线问题

这是由于配置中没有指定依赖路径导致的&#xff0c;在c_cpp_properties.json中includePath的默认配置只有当前目录&#xff0c;需要将系统依赖加入。 在命令行里面输入 gcc -v -E -x c -在结果里面找到头文件目录,然后添加到includepath中。 运行结果如下: C:\Users\wangzp…

解决git clone 卡在Resolving deltas: 100%

操作系统&#xff1a;CentOS7 现象 git clone 一直卡在100%&#xff0c;如下图&#xff1a; 通过strace命令发现有网络超时的情况&#xff1a; 解决办法 将hostname添加到/etc/hosts解析至本地。 服务器hostname为k8s-master 在/etc/hosts文件中增加一条记录

6.24

1> 整理grep、find、cut、tar、apt-get、dpkg、In、In-s指令 a> grep ----->查找字符串 grep 字符串 文件名 -w:按单词查找 -R:实现递归查找&#xff0c;主要用于路径是目录的情况 -i:不区分大小写 -n:显示行号 例&#xff1a; grep -w "^ubuntu" /etc/pa…

3个谷歌seo批量发低质量外链的严重后果

谷歌对于低质量外链的态度一直非常谨慎&#xff0c;并采取了多项措施来遏制这种行为。 如果一个网站被发现在大量网页上使用低质量的外链&#xff0c;可能会面临以下后果&#xff1a; 排名下降&#xff1a;谷歌的算法越来越擅长识别低质量的外链&#xff0c;并对这些外链进行评…

单调栈和单调队列及其相关应用

前言&#xff1a;好久没更新了&#xff0c;痛苦的期末考试周终于过去了&#xff0c;我可以回来继续更新了&#xff0c;今天我们就来学习单调栈和单调队列的相关知识及其应用&#xff0c;单调栈和单调队列是在算法中常用的两种数据结构&#xff0c;用于解决一些与区间最值相关的…

Linux5.9 MySQLMHA高可用配置及故障切换

文章目录 计算机系统5G云计算第四章 LINUX MySQL MHA高可用配置及故障切换一、概述及原理1.什么是 MHA2.MHA 的组成&#xff08;工作原理&#xff09;3.MHA 的特点 二、MMM&#xff08;Master-Master replication manager for MvSQL&#xff0c;MySQL主主复制管理器&#xff09…

Promise 深度学习

文章目录 Promise 由来Promise的用法reject的用法finally all的用法race的用法总结 Promise 由来 我们处理异步函数最普通的方法是这样的&#xff0c;等待上一次请求结束再执行下一步操作&#xff1a; // 一般以定时器来模拟一次请求 setTimeout(() > {console.log("…

爬虫如何通过HTML和CSS采集数据的 ?

爬虫可以应用于各种应用场景&#xff0c;包括数据分析、市场研究、舆情监测、竞争报、价格比较、内容聚合等。对于需要大量数据的业务和研究领域&#xff0c;爬虫能够提供宝贵的支持。 爬虫可以按照设定的规则从多个网进行批量数据抓取&#xff0c;比人工手动方式更高效。量数据…

什么是DevOps

什么是DevOps 1.概述附录 1.概述 >什么是DevOps与CICD 附录 1.什么是DevOps