【C++】二分查找算法(模板)

重点

只需要记住两点:
1.left = right 时,一定就是最终结果(包括找不到目标值),无需再次判断,如果判断就会死循环
2.求中点如果是求左端点 mid = left + (right - left)/2
如果是求右端点 mid = left + (right - left + 1)/2
简称(右加一)
请添加图片描述
请添加图片描述

class Solution {
public:
    vector<int> searchRange(vector<int>& nums, int target) {
       
       if(nums.size() == 0) return {-1, -1};
       int left = 0;
       int right = nums.size()-1;
       //寻找左点端
       int begin = 0;
       while(left < right)
       {
        int mid = left + (right - left)/2;
        if(nums[mid] < target) left = mid+1;
        else if(nums[mid] >= target) right = mid;
       }
      if(nums[left] != target) return {-1, -1};
        else begin = left;
       
       //寻找右端点
       left = 0;
       right = nums.size()-1;
       while(left < right)
       {
        int mid = left + (right-left+1)/2;
        if(nums[mid]<=target) left = mid;
        else right = mid-1; 
       }
       return {begin,right};
    }
};

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Python项目】AI动物识别工具

目录 背景 技术简介 系统简介 界面预览 背景 成像技术在全球科技发展中扮演了关键角色。在科学研究领域&#xff0c;拍摄所得的图像成为了一种不可或缺的研究工具。特别是在生态学与动物学研究中&#xff0c;鉴于地球的广阔地域和多样的气候条件&#xff0c;利用图像技术捕…

关于我20系列显示安装cuda11.8版本一直还报找不到nvcc.exe的这档子事

这几天研究3d gaussian&#xff08;3d高斯&#xff09; 由于本人电脑还是五年前的20系列显卡&#xff0c;本身还是支持cuda的&#xff0c;就没想那么多&#xff0c;结果处处踩坑处处踩雷&#xff0c;在研究2天国内资料翻遍了的情况下&#xff0c;终于去外面看老外发了一个chec…

arm的状态寄存器

目录 一、arm 的 PSRs二、CPSR2.1 CPSR_cxsf 三、SPSR四、APSR 一、arm 的 PSRs arm 中有很多程序状态寄存器&#xff08;Program Status Registers&#xff0c;PSRs&#xff09;用于存储处理器的状态信息&#xff0c;包括 CPSR\SPSR\FPSR\APSR 等&#xff1a; CPSR&#xff…

九州金榜家庭教育孩子沉迷手机网络怎么办?

孩子沉迷于手机网络的问题&#xff0c;在当今社会已变得日益严重。手机网络的普及使得孩子们过早地接触到了虚拟世界&#xff0c;而长时间沉浸其中不仅影响他们的学业&#xff0c;还可能对他们的身心健康造成危害。那么&#xff0c;面对这一问题&#xff0c;家长应该如何应对呢…

数字人视频合成平台推荐

数字人讲解视频和全景作品的结合是一种全新的数字交互方式&#xff0c;可为用户提供更加直观和具有沉浸感的内容展示和交互体验&#xff0c;从而适用于诸如旅游、展览、博物馆、教育培训、泛房地产、以及娱乐和文化等应用场景。 当前数字人合成视频技术已经发展至日益成熟的阶…

Oracle基础-PL/SQL编程 备份

1、PL/SQL简介 PL/SQL块结构 约定&#xff1a;为了方便&#xff0c;本文后面把PL/SQL简称PL。 PL程序都是以块&#xff08;BLOCK&#xff09;为基本单位&#xff0c;整个PL块分三部分&#xff1a;声明部分&#xff08;使用DECLARE开头&#xff09;、执行部分(以BEGIN开头)和异…

武汉星起航:跨境电商优势尽显,引领全球贸易与文化交流新浪潮

在全球化日益加深的今天&#xff0c;跨境电商行业以其独特的优势和好处&#xff0c;逐渐超越了国内电商行业&#xff0c;成为了电商领域的新宠。跨境电商不仅拓展了企业的市场范围&#xff0c;还为消费者带来了更多选择和便利。武汉星起航认为与国内电商相比&#xff0c;跨境电…

5032温补晶振的一些常用型号和实例应用

5032晶振是常用的一种尺寸的晶振&#xff0c;而5032温补晶振因为其高精度高稳定性而被广泛应用。小尺寸封装5.0mm*3.2mm*1.45mm&#xff0c;非常节省空间&#xff0c;便于设计与使用。其实爱普生推出了一系列的5032温补晶振:以TG5032CAN、TG5032SAN、TG5032CDN、TG5032SDN&…

IDEA一行代码出现下划实线,怎么处理?

&#x1f3c6;本文收录于「Bug调优」专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&&…

【Qt】使用Qt实现Web服务器(九):EventSource+JSON实现工业界面数据刷新

1、效果 效果如下,实时刷新温度、湿度 2、源码 2.1 index.html <html><body> <!-- 页面布局,本人对HTML标签不熟悉,凑合看吧 --> <div><label for

整顿编剧市场:程序员提交测试流程的最佳实践

讲动人的故事,写懂人的代码 最近,一部去年推出的国产电视剧在IT圈子里引起了轰动。 引起关注的原因,并非剧中程序员的外形出众,而是她提交代码测试的方式——将写有代码的纸张放入文件夹,然后递给了对面的测试人员。如图1所示。 图1 程序员将写有代码的纸张放入文件夹,并…

2024年全新靠谱的FTP替代升级解决方案

随着企业规模的扩大和业务的多元化&#xff0c;传统的TCP协议在数据传输效率上逐渐显现出局限性。TCP协议虽然以其稳定性和可靠性被广泛应用&#xff0c;但在面对大规模数据传输时&#xff0c;其性能瓶颈逐渐成为企业发展的阻碍。同时&#xff0c;基于TCP的应用协议如Telnet、F…

JS两道题:判断这个月有几天;计算薪资缴税。

计算的时候直接在字符串模版中没问题的&#xff1a; swicth语句分支结构&#xff1a;&#xff08;很多不一样的固定值&#xff09; break结束当前穿透现象 他它的表达式的结果和值必须是全等的关系 当所有的值都不匹配的时候就执行这个部分代码 其实就是在考察条件问题。比如&…

网络钓鱼升级 Darcula如何窃取用户信息

近日&#xff0c;网络安全领域一种名为 “Darcula” 的网络钓鱼欺诈&#xff08;PhaaS&#xff09;悄然兴起。这种新型钓鱼方式不同于传统的手段&#xff0c;它巧妙地利用了谷歌信息和 iMessage 的富通信服务&#xff08;RCS&#xff09;&#xff0c;成为了网络犯罪分子的新手段…

AI绘画软件有什么用?

人工智能(AI)的应用已经渗透到我们生活的各个角落&#xff0c;其中就包括图像生成。AI绘画软件&#xff0c;是一种基于深度学习技术的创新工具&#xff0c;它能够根据指定的风格、主题或者素材自动创作出新的图片。那么&#xff0c;AI绘画软件具体有什么用呢? 首先&#xff0c…

开源大模型AI代理操作系统:像Windows一样,操控AI代理

去年&#xff0c;AutoGPT的出现让我们见识到了AI代理强大的自动化能力&#xff0c;并开创了一个全新的AI代理赛道。但在子任务调度、资源分配以及AI之间协作还有不少的难题。 因此&#xff0c;罗格斯大学的研究人员开源了AIOS&#xff0c;这是一种以大模型为核心的AI代理操作系…

资源优化题

资源平滑类资源优化题 不改变关键路径的情况下&#xff0c;如何避免资源扎堆使用。 破解思路: 1、能串行尽量串行。 2、一定要并行&#xff0c;尽量躲开跟人数多的活动并行。 3、如何躲开&#xff0c;就靠时差来实现。 例题1&#xff1a;某工程包括A、B、C、D、E、F、G七项工作…

Vue ElementPlus Input 输入框

Input 输入框 通过鼠标或键盘输入字符 input 为受控组件&#xff0c;它总会显示 Vue 绑定值。 通常情况下&#xff0c;应当处理 input 事件&#xff0c;并更新组件的绑定值&#xff08;或使用v-model&#xff09;。否则&#xff0c;输入框内显示的值将不会改变&#xff0c;不支…

生鲜网上交易信息系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)海鲜,餐饮电商,超市,农产品,购物车,订单管理,广告信息管理,生鲜信息管理

本项目包含可运行源码数据库LW&#xff0c;文末可获取本项目的所有资料。 推荐阅读300套最新项目持续更新中..... 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含ja…

【Hello,PyQt】PyQt5中的一些对话框

QDialog类是一种特殊的窗口&#xff0c;它被设计出来作为和用户进行交换的对话框。QDialog上是可以包含其他的控件的&#xff0c;比如QLineEdit&#xff0c;QPushButton等。QDialog类的子类主要有QMessageBox&#xff0c;QFileDialog&#xff0c;QColorDialog&#xff0c;QFont…