LeetCode-034-在排序数组中查找元素的第一个和最后一个位置
1.题目:
在排序数组中查找元素的第一个和最后一个位置
给定一个按照升序排列的整数数组 nums
,和一个目标值 target
。找出给定目标值在数组中的开始位置和结束位置。
你的算法时间复杂度必须是 O(log n) 级别。
如果数组中不存在目标值,返回 [-1, -1]
。
示例 1:
1 | 输入: nums = [5,7,7,8,8,10], target = 8 |
示例 2:
1 | 输入: nums = [5,7,7,8,8,10], target = 6 |
2.解题:
这是一个排好序的数组,我们只需要查找数组中是否存在target
,如果存在返回该元素的第一个位置和最后一个位置。
查找很简单,我们使用二分查找,时间复杂度O(log n)
。
我们得到索引后分别找到其第一个位置和最后一个位置的索引。
需要注意边界问题(index = 0
和index = nums.length-1
).
代码:
1 | class Solution { |