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

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

文章目录

  • 题目描述
  • 题解思路
  • 题解代码
  • 题目链接

题目描述

在这里插入图片描述

题解思路

这题让我们求目标值的左边界和右边界,我们可以采用二分查找搜索有序数组内大于等于目标值的最左边的下标

然后我们只需要在有序数组查找一下大于等于target的最左边下标

  • 如果该下标越界或者下标对应的值不等于target,则说明有序数组中不存在target,直接返回没找到target的第一个位置
  • 如果找到target的第一个位置,我们查找大于等于target + 1的最左边下标,然后该下标减一就是target的最后一个位置,然后返回结果

题解代码

func searchRange(nums []int, target int) []int {if len(nums) == 0 {return []int{-1, -1}}var binarySearch func(target int) intbinarySearch = func(target int) int {l, r := 0, len(nums) - 1for l <= r {m := (l + r) >> 1if nums[m] < target {l = m + 1} else {r = m - 1}}return l}l := binarySearch(target)if l == len(nums) || nums[l] != target {return []int{-1, -1}}return []int{l, binarySearch(target + 1) - 1}
}

题目链接

https://leetcode.cn/problems/find-first-and-last-position-of-element-in-sorted-array/description/

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

相关文章:

  • Linux自动化构建工具Make/Makefile
  • 自动驾驶系列—智能驾驶中的“换挡革命”:线控换挡技术详解
  • .mallox勒索病毒肆虐:了解它的危害与防范措施
  • 如何使用ssm实现基于Java的民宿预订管理系统的设计与实现
  • 光伏组件模型模板在SketchUp中如何完成成模数化设计?
  • 常用组件详解(十):保存与加载模型、检查点机制的使用
  • 基于SpringBoot+Vue+MySQL的在线学习交流平台
  • 前端开发在AI时代如何保持核心竞争力
  • ffmpeg面向对象——拉流协议匹配机制探索
  • R语言绘制柱状图
  • GNU/Linux - tarball文件介绍介绍
  • AppointmentController
  • 网站建设完成后,切勿让公司官网成为摆设
  • 独孤思维:闲得蛋疼才去做副业
  • vulnhub靶场之hackablell
  • 《浔川社团官方通报 —— 为何明确 10 月 2 日上线的浔川 AI 翻译 v3.0 再次被告知延迟上线》
  • 加密与安全_HOTP一次性密码生成算法
  • ResNet18果蔬图像识别分类
  • 深度强化学习中收敛图的横坐标是steps还是episode?
  • 一个真实可用的登录界面!
  • Vue中watch监听属性的一些应用总结
  • MongoDB-aggregate流式计算:带条件的关联查询使用案例分析
  • Redis数据库与GO(一):安装,string,hash
  • expressjs,实现上传图片,返回图片链接
  • 爬虫——XPath基本用法
  • 常见排序算法汇总
  • Golang | Leetcode Golang题解之第459题重复的子字符串
  • 0.计网和操作系统
  • 探索Prompt Engineering:开启大型语言模型潜力的钥匙
  • 滚雪球学Oracle[3.3讲]:数据定义语言(DDL)