Find First and Last Position of Element in Sorted Array
Binary Search
Last updated
Binary Search
Last updated
class Solution:
def searchRange(self, nums: List[int], target: int) -> List[int]:
first = self.first(nums,target)
last = self.last(nums, target)
return [first,last]
def first(self, nums, target):
low, high = 0, len(nums)-1
res = -1
while low <= high:
mid = low + (high-low)//2
if nums[mid] >= target:
high = mid-1
elif nums[mid] < target:
low = mid+1
if nums[mid] == target:
res = mid
return res
def last(self, nums, target):
low, high = 0, len(nums)-1
res = -1
while low <= high:
mid = low + (high-low)//2
if nums[mid] <= target:
low = mid+1
elif nums[mid] > target:
high = mid-1
if nums[mid] == target:
res = mid
return res