在排序数组中查找元素的第一个和最后一个位置
在排序数组中查找元素的第一个和最后一个位置
问题陈述
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。
你的算法时间复杂度必须是 O(log n) 级别。
如果数组中不存在目标值,返回 [-1, -1]。
示例:
1 | 输入: nums = [5,7,7,8,8,10], target = 8 |
思路分析
定义一个存储该元素起始索引和终止索引两个元素的数组。初始化为{-1,-1},从头开始遍历到第一个元素,赋给数组的第一个元素。如果第一个匹配索引找不到,直接返回{-1,-1}。如果第一个索引找到,则继续从数组尾开始遍历找到第二个匹配索引,赋给数组第二个元素。
代码实现
1 | public class SearchRange { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 淋竹调!
评论