classSolution: defsearchRange(self, nums: List[int], target: int) -> List[int]: deffind_first(nums, target): left, right = 0, len(nums) while left < right: mid = (left + right) >> 1 if nums[mid] >= target: right = mid else: left = mid + 1
if left < len(nums) and nums[left] == target: return left return -1
deffind_last(nums, target): left, right = 0, len(nums) while left < right: mid = (left + right) >> 1 if nums[mid] <= target: left = mid +1 else: right = mid
if0 <= left - 1 < len(nums) and nums[left-1] == target: return left - 1 return -1