34. Find First and Last Position of Element in Sorted Array
二分
Input: nums = [5,7,7,8,8,10], target = 8
Output: [3,4]Input: nums = [5,7,7,8,8,10], target = 6
Output: [-1,-1]Input: nums = [], target = 0
Output: [-1,-1]Last updated
二分
Input: nums = [5,7,7,8,8,10], target = 8
Output: [3,4]Input: nums = [5,7,7,8,8,10], target = 6
Output: [-1,-1]Input: nums = [], target = 0
Output: [-1,-1]Last updated
from bisect import bisect_left, bisect_right
class Solution:
def searchRange(self, nums: List[int], target: int) -> List[int]:
left = bisect.bisect_left(nums, target)
right = bisect.bisect_right(nums, target)
if left == right:
return [-1, -1]
else:
return [left, right-1]
class Solution:
def searchRange(self, nums: List[int], target: int) -> List[int]:
if not nums:
return [-1, -1]
s,e = 0,len(nums)-1
while s + 1 < e:
mid = (s + e) // 2
if nums[mid] >= target:
e = mid
else:
s = mid
if nums[s] == target:
start = s
elif nums[e] == target:
start = e
else:
return [-1,-1]
s, e = 0, len(nums) - 1
while s + 1 < e:
mid = (s + e) // 2
if nums[mid] <= target:
s = mid
else:
e = mid
if nums[e] == target:
end = e
else:
end = s
return [start,end]