本文介绍: 给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。
在排序数组中查找元素的第一个和最后一个位置
方法一、二分查找法
题目要求时间复杂度为 O(log n) ,首先想到的是二分查找法。
起始位置:查找target第一次出现的位置,一直找到不满足target <= nums[mid]
为止。但是结束位置如何找呢?
结束位置:找第一个大于target的值的位置,然后前一个位置就是目标值的结束位置。
Swift
OC
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。