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

LeetCode -- Search for a Range

题目描述:


Given a sorted array of integers, find the starting and ending position of a given target value.


Your algorithm's runtime complexity must be in the order of O(log n).


If the target is not found in the array, return [-1, -1].


For example,
Given [5, 7, 7, 8, 8, 10] and target value 8,
return [3, 4].


就是在排序的数组中找到一个区间的起始和终止边界索引。




思路:
1. 对于目标数target,在数组nums中使用二分查找到该值的一个索引i
2. 找到nums[i] < target的左边界,i∈[0,i), 找到nums[j] > target的右边界,j∈[i,n)




实现代码:






public class Solution {
public int[] SearchRange(int[] nums, int target) 
{
    if(target > nums[nums.Length - 1] || target < nums[0]){
		return new int[2]{-1,-1};
	}
	
   var i = Array.BinarySearch<int>(nums,target);
   if(i < 0){
   		return new int[2]{-1,-1};
   }
   
   var l = i;
   var r = i;
	while(l >= 0 && nums[l] == target){
		l --;
	}
	
	while(r < nums.Length && nums[r] == target){
		r++;
	}
   
   return new int[2]{l+1,r-1};
}
    
    
}


相关文章:

  • 老子生平
  • LeetCode -- Simplify Path
  • 老子著述
  • LeetCode -- Single Number
  • LeetCode -- Find Peak Element
  • 老子思想
  • LeetCode -- Add Two Numbers
  • LeetCode – Combination Sum
  • ArcGIS Server Java ADF 案例教程 21
  • LeetCode -- Contains Duplicate
  • HelloCpp上线服务
  • LeetCode -- Happy Number
  • SQL2005CLR函数扩展-数据导出
  • LeetCode -- Insertion Sort List
  • 【Nokia5800xm软件资源】
  • 77. Combinations
  • Cookie 在前端中的实践
  • Druid 在有赞的实践
  • express.js的介绍及使用
  • JavaScript设计模式系列一:工厂模式
  • js操作时间(持续更新)
  • Linux下的乱码问题
  • Mysql优化
  • Python语法速览与机器学习开发环境搭建
  • Vue学习第二天
  • 编写高质量JavaScript代码之并发
  • 飞驰在Mesos的涡轮引擎上
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 转载:[译] 内容加速黑科技趣谈
  • gunicorn工作原理
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • 昨天1024程序员节,我故意写了个死循环~
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • #laravel 通过手动安装依赖PHPExcel#
  • $ git push -u origin master 推送到远程库出错
  • (¥1011)-(一千零一拾一元整)输出
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (第27天)Oracle 数据泵转换分区表
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (一)Thymeleaf用法——Thymeleaf简介
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • .aanva
  • .NET Remoting学习笔记(三)信道
  • .Net 知识杂记
  • .Net接口调试与案例
  • .NET设计模式(2):单件模式(Singleton Pattern)
  • .pub是什么文件_Rust 模块和文件 - 「译」
  • .sdf和.msp文件读取