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

二分查找一>:在排序数组中查找元素的第一个和最后一个位置

1.题目:  

2.解析:这里不能用传统二分,因为涉及范围,传统二分时间复杂度会降为O(N),要做些改动。

步骤一:查找区间左端点

细节图:

 

步骤二:查找区间右端点: 

细节图:

 

 

代码: 

public int[] searchRange(int[] nums, int target) {int[] ret = new int[2];ret[0] = ret[1] = -1;if(nums.length == 0) return ret;//二分查找区间左端点int left = 0;int right = nums.length-1;while(left < right){int mid = left+(right-left)/2;if(nums[mid] < target) left = mid+1;else right = mid;}//判断是否有结果if(nums[left] == target){ret[0] = left;}else {return ret;}//二分查找区间右端点left = 0;right = nums.length-1;while(left < right){int mid = left+(right-left+1)/2;if(nums[mid] <= target) left = mid;else right = mid-1;}//判断是否有结果ret[1] = left;return ret;}

 

3.非朴素二分模板:在理解原理基础上

 


 

http://www.lryc.cn/news/451844.html

相关文章:

  • undeclared identifier ‘UNITY_PREV_MATRIX_M‘ - Unity Shader自己写URP,引用内部 hlsl
  • 信息安全工程师(29)存储介质安全分析与防护
  • Html5知识点介绍
  • 探索机器学习中的特征选择技术
  • 数造科技入选中国信通院《高质量数字化转型产品及服务全景图》三大板块
  • 什么是分布式数据库
  • 从u盘直接删除的文件能找回吗 U盘文件误删除如何恢复
  • 如何使用ssm实现基于HTML的中国传统面食介绍网站的搭建+vue
  • 【生成模型】学习笔记
  • 大语言模型知识点分享
  • openpnp - 底部相机高级校正的参数设置
  • 劳动与科技、艺术结合更好提高劳动教育意义
  • 基于Hive和Hadoop的招聘分析系统
  • 目标检测评价指标
  • 解决VRM格式模型在Unity中运行出现头发乱飞等问题
  • 消息中间件---初识(Kafka、RocketMQ、RabbitMQ、ActiveMQ、Redis)
  • MySQL高阶2010-职员招聘人数2
  • 【Java】—— 集合框架:Collection接口中的方法与迭代器(Iterator)
  • 华证ESG工具变量(2009-2022年)
  • Linux date命令(用于显示和设置系统的日期和时间,不仅可以显示时间,还能进行复杂的时间计算和格式化)
  • 高中教辅汇总【35GB】
  • 树莓派 AI 摄像头(Raspberry Pi AI Camera)教程
  • SpringBoot实现的师生健康信息管理平台
  • 启用vnc访问Dell 服务器IDRAC 7虚拟控制台
  • 分布式数据库知识详解
  • 无人化焦炉四大车系统 武汉正向科技 工业机车无人远程控制系统
  • 【Linux】几种常见配置文件介绍
  • 【2024最新】华为HCIE认证考试流程
  • Golang | Leetcode Golang题解之第453题最小操作次数使数组元素相等
  • 想知道为什么有DICOM格式,YAML格式,XML格式,JSON格式吗?