考察二分查找
题目描述
class Solution:
def searchRange(self, nums: List[int], target: int) -> List[int]:
low = 0
high = len(nums)-1
mid = 0
if high<0:
return [-1, -1]
while low<=high:
mid = (low+high)//2
if nums[mid]==target:
break
elif nums[mid]<target:
low = mid+1
else:
high = mid-1
if nums[mid]==target:
mid_low = mid
mid_high = mid
while nums[mid_low]==target:
mid_low -= 1
if mid_low<0:
break
mid_low += 1
while nums[mid_high]==target:
mid_high+=1
if mid_high>=len(nums):
break
mid_high -= 1
return [mid_low,mid_high]
else:
return [-1,-1]
运行结果: