Problem: 34. 在排序数组中查找元素的第一个和最后一个位置
思路 & 解题方法
可以直接bisect也可以自己写一下。
复杂度
时间复杂度:
O ( l o g n ) O(logn) O(logn)
空间复杂度:
O ( 1 ) O(1) O(1)
Code
class Solution:
def searchRange(self, nums: List[int], target: int) -> List[int]:
l = bisect.bisect_left(nums, target)
l = l if l >= 0 and l < len(nums) and nums[l] == target else -1
r = bisect.bisect_right(nums, target) - 1
r = r if r >= 0 and r < len(nums) and nums[r] == target else -1
return [l, r]