34.在排序数组中查找元素的第一个和最后一个位置

​​题目来源:

        leetcode题目,网址:34. 在排序数组中查找元素的第一个和最后一个位置 - 力扣(LeetCode)

解题思路:

        进行两次二分查找即可。

解题代码:

class Solution {
public:vector<int> searchRange(vector<int>& nums, int target) {vector<int> res{-1,-1};if(nums.size()==0){return res;}res[0]=findFirst(nums,target);if(res[0]==-1){return res;}cout<<res[0]<<endl;res[1]=findLast(nums,target,res[0]);return res;}int findLast(vector<int>& nums,int target,int left){if(nums[nums.size()-1]==target){return nums.size()-1;}int right=nums.size()-2;while(left<=right){int mid=left+(right-left)/2;if(nums[mid]==target){if(nums[mid+1]>target){return mid;}else{left=mid+1;}}else if(nums[mid]>target){right=mid-1;}else{left=mid+1;}}return -1;}int findFirst(vector<int>& nums,int target){if(nums[0]==target){return 0;}int left=1;int right=nums.size()-1;while(left<=right){int mid=left+(right-left)/2;if(nums[mid]==target){if(nums[mid-1]<target){return mid;}else{right=mid-1;}}else if(nums[mid]>target){right=mid-1;}else{left=mid+1;}}return -1;}
};
 

总结:

        官方题解也是两次二分。


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

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

相关文章

道路坑洞数据集(坑洞目标检测)VOC+YOLO格式650张

路面坑洞的形成原因是由于设计、施工、养护处理不当、控制不适和受气候、环境、地质、水文等自然因素影响&#xff0c;以及车辆的运行和车辆超载运行导致路面破损&#xff0c;出现坑洞的现象。 路面坑洞的分类&#xff1a; &#xff08;1&#xff09;路面混凝土板中坑洞&…

python自动化测试实战 —— CSDN的Web页面自动化测试

软件测试专栏 感兴趣可看&#xff1a;软件测试专栏 自动化测试学习部分源码 python自动化测试相关知识&#xff1a; 【如何学习Python自动化测试】—— 自动化测试环境搭建 【如何学习python自动化测试】—— 浏览器驱动的安装 以及 如何更…

SpringBoot入门知识

我是南城余&#xff01;阿里云开发者平台专家博士证书获得者&#xff01; 欢迎关注我的博客&#xff01;一同成长&#xff01; 一名从事运维开发的worker&#xff0c;记录分享学习。 专注于AI&#xff0c;运维开发&#xff0c;windows Linux 系统领域的分享&#xff01; 本…

ORA-01795: maximum number of expressions in a list is 1000

ORA-01795: maximum number of expressions in a list is 1000 使用in函数出现的报错问题 最近项目上线查询功能出现了一个日志报错&#xff1a;ORA-01795: maximum number of expressions in a list is 1000&#xff0c; 经过开发查询代码得知&#xff0c;是使用in函数出现的…

前端体系:前端应用

目录 前端体系基础 html&#xff08;超文本标记语言&#xff09; css&#xff08;层叠样式单&#xff09; javascript&#xff08;&#xff09; 一、前端体系概述 二、前端框架 React Vue Angular 三、前端库和工具 lodash Redux Webpack 四、模块化和组件化 ES…

微软AutoGen框架:AI的新时代,你的新机遇

一、引言 在科技日新月异的今天&#xff0c;人工智能已经深入到我们生活的各个角落。无论是智能手机、智能家居还是自动驾驶汽车&#xff0c;人工智能的应用无处不在。而在这个领域中&#xff0c;微软AutoGen框架无疑是一颗璀璨的新星。它以其独特的创新性和实用性&#xff0c…

【网络通信原理之套接字】

目录 概念 分类 数据报套接字&#xff1a;使用传输层UDP协议 流套接字&#xff1a;使用传输层TCP协议 原始套接字 Socket编程注意事项 前言&#xff1a;本文主要介绍了在什么是套接字及在Java中套接字是什么&#xff0c;和在套接字编程的注意事项。 概念 Socket套接…

大数据技术之Hive(超级详细)

第1章 Hive入门 1.1 什么是Hive Hive&#xff1a;由Facebook开源用于解决海量结构化日志的数据统计。 Hive是基于Hadoop的一个数据仓库工具&#xff0c;可以将结构化的数据文件映射为一张表&#xff0c;并提供类SQL查询功能。 本质是&#xff1a;将HQL转化成MapReduce程序 …

WPF实现更加灵活绑定复杂Command(使用Microsoft XAML Behaviors 库)

1、安装NuGet 2、在XAML的命名空间引入&#xff1a; xmlns:i"http://schemas.microsoft.com/xaml/behaviors" 3、使用&#xff1a; <Canvas Background"Aqua"><Rectangle Stroke"Red" Width"{Binding RectModel.RectangleWidth}…

Java面向对象思想以及原理以及内存图解

文章目录 什么是面向对象面向对象和面向过程区别创建一个对象用什么运算符?面向对象实现伪代码面向对象三大特征类和对象的关系。 基础案例代码实现实例化创建car对象时car引用的内存图对象调用方法过程 成员变量和局部变量作用范围在内存中的位置 关于对象的引用关系简介相关…

Leetcode刷题笔记题解(C++):328. 奇偶链表

思路&#xff1a;遍历链表生成奇链表和偶链表&#xff0c;然后拼接两个链表生成新的链表。 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), ne…

JS基础之作用域链

JS基础之作用域链 作用域链作用域链函数创建函数激活总结 作用域链 当JavaScript代码执行一段可执行的代码&#xff08;execution code&#xff09;时&#xff0c;会创建对应的执行上下文&#xff08;execution context&#xff09;。 对于每个执行上下文&#xff0c;都有三个重…

恢复出厂设置后在 Android 上恢复照片的 6 种常用方法

恢复出厂设置可帮助您删除电子设备的所有信息并将其恢复到原始系统状态。但是&#xff0c;如果您不小心按下了恢复出厂设置按钮并从 Android 设备中删除了所有难忘的照片&#xff0c;该怎么办&#xff1f;好吧&#xff0c;您无需担心&#xff0c;因为可以通过以下一些方法来恢复…

Active Objects设计模式

Active是主动的意思&#xff0c;Active Object是主动对象的意思。主动对象就是拥有自己的独立线程。 Active Object模式不仅有自己的独立线程&#xff0c;还可以接受异步消息&#xff0c;并能返回处理结果。从标准的Active Objects设计入手&#xff0c;将一个接口的方法调用转换…

Apache Flink(十三):Flink History Server

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频 目录

《系统架构设计师教程(第2版)》第2章-计算机系统基础知识-06-系统工程

文章目录 1 系统工程概述2. 系统工程方法2.1 霍尔的三维结构2.2 切克兰德方法2.3 并行工程法2.4 综合集成法2.5 WSR系统方法3. 系统工程的生命周期3.1 各阶段1)探索性研究阶段2)概念阶段3)开发阶段4)生产阶段5)使用阶段6)保障阶段7)退役阶段3.2 生命周期方法1)计划驱动方…

缺钱走投无路怎么办

应对财务困境的有效方式 1. 审视并制定财务计划 评估个人或家庭的财务状况&#xff0c;分析收入和支出。制定财务预算&#xff0c;优先支付必要的支出&#xff0c;例如食品、住房和基本生活费用。 2. 与信用机构或服务提供商协商 如果无法按时支付账单或贷款&#xff0c;请…

区块链的可拓展性研究【05】闪电网络

1.闪电网络&#xff1a;闪电网络是一种基于比特币区块链的 Layer2 扩容方案&#xff0c;它通过建立一个双向支付通道网络&#xff0c;实现了快速、低成本的小额支付。闪电网络的交易速度非常快&#xff0c;可以达到每秒数万笔交易&#xff0c;而且交易费用非常低&#xff0c;几…

Spring中的经典的9种设计模式

Spring中的经典的9种设计模式 大家好&#xff0c;我是微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;在编写高质量、可维护的代码时&#xff0c;设计模式是我们的得力工具之一。今天&#xff0c;让我们一同探讨Spring中的经典…

04.仿简道云公式函数实战-QLExpress基础语法

1. 前言 小伙伴大家好&#xff0c;在上一篇文章我们简单初探了QLExpress表达式引擎&#xff0c;我们简单写了一个HelloWorld的程序&#xff0c;并成功的运行期望的结果。在本篇文章中我们来熟悉一下QLExpress的语法&#xff0c;因为我们在后面简道云公式实战的时候&#xff0c…