class Solution:
def searchRange(self, nums: List[int], target: int) -> List[int]:
ans =[-1,-1]
n = len(nums)
if n == 0:
return ans
l = 0
r = n-1
while l<r:
# 这里很重要,没有的话就有问题
mid = l + r >> 1
if nums[mid]>= target:
r = mid
else:
l = mid + 1
# 没找到?可能没有target存在
if nums[l]!= target:
return ans
else:
# 找到了最左边的target
ans[0] = l
l = 0
r = n-1
while l<r:
# 这里很重要,没有的话就有问题
mid = l + r + 1 >> 1
if nums[mid]<=target:
l = mid
else:
r = mid -1
# 找到右边界
ans[1] = l
return ans
每日一道Leetcode - 34. 在排序数组中查找元素的第一个和最后一个位置【搜索目标target的范围】
最新推荐文章于 2022-07-19 16:25:39 发布