Given an array of integers
nums
sorted in non-decreasing order, find the starting and ending position of a given target
value.If
target
is not found in the array, return [-1, -1]
.You must write an algorithm with
O(log n)
runtime complexity.Example 1:
Input: nums = [5,7,7,8,8,10], target = 8
Output: [3,4]
Example 2:
Input: nums = [5,7,7,8,8,10], target = 6
Output: [-1,-1]
Example 3:
Input: nums = [], target = 0
Output: [-1,-1]
Constraints:
0 <= nums.length <= 10<sup>5</sup>
-10<sup>9</sup> <= nums[i] <= 10<sup>9</sup>
nums
is a non-decreasing array.
-10<sup>9</sup> <= target <= 10<sup>9</sup>
题目大意:
求有序数列中元素等于target的第一个和最后一个下标
解题思路:
用模板
解题步骤:
N/A
注意事项:
- 数组为空的情况要返回-1
Python代码:
1 | def searchRange(self, nums: List[int], target: int) -> List[int]: |
算法分析:
时间复杂度为O(logn)
,空间复杂度O(1)