class Solution:
def searchRange(self, nums: List[int], target: int) -> List[int]:
len_nums = len(nums)
left_bound = self.left(nums, len_nums, target)
right_bound = self.right(nums, len_nums, target)
return [left_bound, right_bound]
def left(self, nums, len_nums, target):
l_bound, r_bound = 0, len_nums-1
while(l_bound <= r_bound):
mid = (l_bound + r_bound )//2
if nums[mid] < target:
l_bound = mid + 1
elif nums[mid]> target:
r_bound = mid - 1
elif nums[mid] == target:
r_bound = mid - 1
if l_bound >= len_nums or nums[l_bound] != target:
return -1
return l_bound
def right(self, nums, len_nums, target):
l_bound, r_bound = 0, len_nums-1
while(l_bound <= r_bound):
mid = (l_bound + r_bound )//2
if nums[mid] < target:
l_bound = mid + 1
elif nums[mid] > target:
r_bound = mid - 1
elif nums[mid] == target:
l_bound = mid + 1
if r_bound < 0 or nums[r_bound] != target:
return -1
return r_bound