61. 搜索区间

news/2025/2/24 16:22:10

给定一个包含 n 个整数的排序数组,找出给定目标值 target的起始和结束位置。

如果目标值不在数组中,则返回[-1, -1]

 

样例

给出[5, 7, 7, 8, 8, 10]和目标值target=8,

返回[3, 4]

挑战 

时间复杂度 O(log n)

 

 

应该要第一时间反应到二分,就算没有想到看到这个时间复杂度也要想到了

总体思路就是用二分找到target再前后搜索下就行了

 1 vector<int> searchRange(vector<int> &A, int target) {
 2         // write your code here
 3         vector<int> res;
 4         if(A.empty() ||target < A[0] || target > A[A.size() - 1]){ 
 5             res.push_back(-1);
 6             res.push_back(-1);
 7             return res;  
 8         }  
 9         
10         int low=0,high=A.size();
11         int mid;
12         int start,end;
13         while(low<=high){
14             mid=low+(high-low)/2;
15             if(A[mid]==target){
16                 start=mid-1;
17                 end=mid+1;
18                 while (end < A.size() && A[end] == target) {
19                     end++;
20                 }
21                 while (start >= 0 && A[start] == target ) {
22                     start--; 
23                 }
24                 res.push_back(start + 1);
25                 res.push_back(end - 1);
26                 return res;
27             }
28             
29             if(A[mid]>target){
30                 high=mid-1;
31             }
32             else{
33                 low=mid+1;
34             }
35         }
36         res.push_back(-1);
37         res.push_back(-1);
38         return res; 
39     }

 

转载于:https://www.cnblogs.com/TheLaughingMan/p/8301439.html


http://www.niftyadmin.cn/n/2133338.html

相关文章

深度学习大概率用到的Pytorch内容进阶

Pytorch进阶 文章目录(1) 拼接与拆分(2) 基本运算(3) 统计属性 (4) 高阶操作(1) 拼接与拆分 torch.cat(tensors, dim0)torch.stack(tensors, dim0)注意区别 torch.cat 和 torch.stack&#xff0c;前者是不会产生新的维度的&#xff0c;后者是会产生新的维度&#xff0c;而且注…

outlook/foxmail发邮件退信

Microsoft Outlook向以下收件人或组传递邮件失败: liuyangxxxx.com 电子邮件系统在处理此邮件时遇到问题。该系统不会尝试重新传递此邮件。 供管理员使用的诊断信息: 生成服务器: EXCSE.xxxx.com liuyangxxxx.com #554 5.6.0 STOREDRV.Submit.Exception:PropertyTooBigExceptio…

ospf不同区域的互通

实验名称&#xff1a;ospf不同区域的互通实验拓扑图&#xff1a;3.配置思路 &#xff1a; 首先确定边界路由器&#xff0c;例如在上面图中&#xff0c;AR2,和AR1是边界路由器&#xff0c;然后划分不同的区域&#xff0c;4. 配置步骤 &#xff1a; #首先给所有路由器配置ip地址…

新CSDN文章转成PDF、打印(去空白)

新CSDN文章一键打印、输出PDF&#xff08;自动阅读全文、全清爽模式&#xff09; 之前的方法出现的问题是打印出的预览图会有右边一大片空白&#xff0c;这个方法实现将空白去掉 一、功能及修改方法 使用方法&#xff1a;按“F12”进入开发者工具&#xff0c;将以下js复制到 …

随机过程(基本概念、平稳随机过程)

大三上学习了随机过程&#xff08;实际听不懂就去看了简化版的随机信号&#xff09;&#xff0c;感觉一些概念性的东西比较多&#xff0c;因此这里进行一个简单总结。 文章目录(1)随机过程的基本概念1.对随机过程的理解2.随机过程的概率分布3.随机过程的矩函数4.随机过程的特征…

搭建简单的伪热更新Mock服务

简介 刚开始接触vue-cli&#xff0c;发现用它生成的框架代码是缺少Mock模拟的&#xff0c;于是自己摸索了许久&#xff0c;将自己的摸索的结果通过过程记录下来&#xff0c;希望对别人有所帮助&#xff0c;能少走弯路。 这不是关于vue-cli的&#xff0c;是单纯的模拟数据服务 这…

随机过程(联合平稳随机过程)

实际上联合平稳随机过程和单一的随机过程是十分相似的&#xff0c;联合平稳随机过程用来表征两个随机过程之间的关系。 文章目录联合平稳随机过程1.概率分布与矩函数2.矩函数3.联合平稳的矩函数联合平稳随机过程 1.概率分布与矩函数 假定有两个随机过程 X(t)X(t)X(t) 和 Y(t)…

【云周刊】第144期:阿里云海外征战记:跻身全球前三,只用了两年半

摘要&#xff1a;阿里云海外征战记&#xff1a;跻身全球前三&#xff0c;只用了两年半&#xff0c;机器视觉技术背后的行业趋势&#xff0c;2017云栖大会广州分会火热报名中&#xff0c;证书服务那点事...更多精彩技术资讯&#xff0c;尽在云周刊&#xff01;本期头条 阿里云海…