class Solution:
def searchRange(self, nums: List[int], target: int) -> List[int]:
index = [-1, -1]
if len(nums)==0:
return index
l = 0
r = len(nums)-1
while l<=r:
if nums[l]==target:
index[0]=l
if nums[r]==target:
index[1]=r
if index[0]>-1 and index[1]>-1:
break
mid = (l+r)//2
if nums[mid]==target:
if nums[l]!=target:
l += 1
if nums[r]!= target:
r -= 1
elif nums[mid]>target:
r -= 1
else:
l += 1
return index
通过二分查找来定位目标数,定位好后,再微调左右边界。