当前为游客只读模式。登录后可提交代码判题并保存草稿与进度。
在排序数组中查找元素的第一个和最后一个位置
中等searchRange()时间限制 2000 ms内存限制 128 MB复杂度要求 时间 O(log n),空间 O(1)
在排序数组中查找元素的第一个和最后一个位置
给你一个按非递减顺序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。
如果数组中不存在目标值,返回 [-1, -1]。
你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。
约定
- 数组已按非递减顺序排序。
- 返回的是下标,从 0 开始。
输入
nums:非递减整数数组,0 ≤ nums.length ≤ 10^5target:目标整数
输出
长度为 2 的数组 [start, end];未找到返回 [-1, -1]。
示例一
输入:
nums = [5,7,7,8,8,10], target = 8
输出:
[3,4]
示例二
输入:
nums = [5,7,7,8,8,10], target = 6
输出:
[-1,-1]
示例三
输入:
nums = [], target = 0
输出:
[-1,-1]
复杂度要求
- 时间复杂度:
O(log n) - 空间复杂度:
O(1)
Loading...
输入
[[5,7,7,8,8,10],8]
预期输出
[3,4]