给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。

你的算法时间复杂度必须是 O(log n) 级别。

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

输入: nums = [5,7,7,8,8,10], target = 8
输出: [3,4]

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
————————————
解题思路:使用二分查找,找到最左边的target值,然后使用二分查找,找到最右边的target值。

Python代码:

class Solution:def searchRange(self, nums: List[int], target: int) -> List[int]:if not nums or target<nums[0] or target>nums[-1]:return [-1,-1]length = len(nums)begin = -1end = -1L = 0R = length-1while L<=R:  # 找到最左边的target的位置mid = (L+R)//2if nums[mid]<target:L = mid+1elif nums[mid]>=target:R = mid-1begin = LL = 0R = length-1while L<=R:  # 找到最右边的target位置mid = (L+R)//2if nums[mid]<=target:L = mid+1elif nums[mid]>target:R = mid-1end = Rif begin>end:  # 如果begin的值在end的右边,则数组中没有target值return [-1,-1]return [begin,end]

leetcode —— 34. 在排序数组中查找元素的第一个和最后一个位置相关推荐

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

    在排序数组中查找元素的第一个和最后一个位置 class Solution {public int[] searchRange(int[] nums, int target) {int len = nu ...

  2. 62. Leetcode 34. 在排序数组中查找元素的第一个和最后一个位置 (二分查找-局部有序)

    给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值在数组中的开始位置和结束位置.如果数组中不存在目标值 target,返回 [-1, -1].进阶:你可以设计并实现时 ...

  3. leetcode 34. 在排序数组中查找元素的第一个和最后一个位置(二分查找)

    给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值在数组中的开始位置和结束位置. 如果数组中不存在目标值 target,返回 [-1, -1]. 进阶: 你可以设计并 ...

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

    1.左右区间要单独查找,时间复杂度为O(logN)O(logN)O(logN) 2.查找右边界的时候,左边向右收缩:查找左边界的时候,右边向左收缩. class Solution {public:in ...

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

    https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array/ 解决方案 class ...

  6. 去掉数组最后一个元素_leetcode 34. 在排序数组中查找元素的第一个和最后一个位置每天刷一道leetcode算法系列!...

    作者:reed,一个热爱技术的斜杠青年,程序员面试联合创始人 前文回顾: leetcode1. 两数之和--每天刷一道leetcode系列! leetcode2. 两数相加--每天刷一道leetcod ...

  7. LeetCode (二分小专题)33搜索旋转排序数组34在排序数组中查找元素的第一个和最后一个位置35搜索插入位置

    前言 国庆前最后一次打卡,国庆后继续开启,公众号bigsai回复进群欢迎加入打卡,如有帮助记得点赞收藏. 近期打卡记录: LeetCode 32最长有效括号(困难) (本周) LeetCode 30串 ...

  8. [算法]LeetCode 专题 -- 二分查找专题 34. 在排序数组中查找元素的第一个和最后一个位置

    LeetCode 专题 – 二分查找专题 34. 在排序数组中查找元素的第一个和最后一个位置 难度:中等 题目描述 给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值 ...

  9. 34. 在排序数组中查找元素的第一个和最后一个位置给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标

    34. 在排序数组中查找元素的第一个和最后一个位置 难度中等2012 给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target.请你找出给定目标值在数组中的开始位置和结束位置. 如果 ...

最新文章

  1. Solr索引和基本数据操作
  2. Linux目录与文件常见处理命令
  3. html标题电脑快速输入,快速把纸上文字输入到电脑中的技巧
  4. python 从入门到实践_Python编程从入门到实践日记Day15
  5. 云专网和云专线的区别_传统IDC行业与云计算的区别?
  6. 41 MM配置-采购-采购订单-STO配置-定义凭证类型和可用性检查设置
  7. ElasticSearch7.2只能用localhost访问但不能用IP地址访问---ElasticSearch工作笔记027
  8. 微信认证结果拆分为资质审核和名称审核
  9. Java革新大提速 Chrome 54终结YouTube的Flash内嵌技术
  10. 无刷舵机、普通舵机等舵机的区别
  11. 澳大利亚每日电价和需求文本数据(2015-2020)
  12. rimraf 命令快速删除 node_modules 包
  13. 查看文章影响因子的插件_你的pubmed又不能显示影响因子了,因为 ……
  14. JAVA之理解面向对象的内涵
  15. 离散型随机变量及其分布律2
  16. 计算机考数学二英语二的学校,2020考研答疑:数学二和英语二,该怎么提前准备呢_工作和考研要如何选择-聚创考研网...
  17. Nginx、图片上传、FastDFS
  18. 用python画佩奇_用python画小猪票佩奇
  19. ASCII 、GB2312、GBK、GB18030、unicode、UTF-8字符集编码详解(转载)
  20. 基于 Flink 流计算实现的股票交易实时资产应用

热门文章

  1. 换了一个皮肤,心情也好多了
  2. Vuex 状态管理的工作原理
  3. JavaScript玩转机器学习:平台和环境
  4. 文档预览 OfficeWebViewer:在浏览器中查看Office文档
  5. .net core 开发 Windows Forms 程序
  6. 3、MapReduce详解与源码分析
  7. 【C语言】输入一个正整数,判断其是否为素数
  8. 如何将Webpack与React结合使用:深入的教程
  9. 我的第一个安卓应用程序_今天,我启动了我的第一个移动应用程序。 这是我学到的...
  10. docker下mongodb备份导入数据库