Search for a Range
Given an array of integers nums
sorted in ascending order, find the starting and ending position of a given target
value.
Your algorithm’s runtime complexity must be in the order of O(log n).
If the target is not found in the array, return [-1, -1]
.
Example 1:
1 | Input: nums = [5,7,7,8,8,10], target = 8 |
Example 2:
1 | Input: nums = [5,7,7,8,8,10], target = 6 |
思路:因为数组有序,所以想到了二分查找,我们可以先利用二分查找找到一个匹配target的值,然后从这个值出发左右查找,直到找到不等于target的值为止,记录最长的距离。
java代码如下:
1 | class Solution { |