34. 在排序数组中查找元素的第一个和最后一个位置 - 力扣(LeetCode)


class Solution:
def searchRange(self, nums: List[int], target: int) -> List[int]:
def find_first(nums, target):
left, right = 0, len(nums) - 1
result = -1
while left <= right:
mid = left + (right - left) // 2
if nums[mid] == target:
result = mid
right = mid - 1 # 继续向左搜索
elif nums[mid] < target:
left = mid + 1
else:
right = mid - 1
return result
def find_last(nums, target):
left, right = 0, len(nums) - 1
result = -1
while left <= right:
mid = left + (right - left) // 2
if nums[mid] == target:
result = mid
left = mid + 1 # 继续向右搜索
elif nums[mid] < target:
left = mid + 1
else:
right = mid - 1
return result
start = find_first(nums, target)
end = find_last(nums, target)
return [start, end]

被折叠的 条评论
为什么被折叠?



