給定乙個按照公升序排列的整數陣列nums
,和乙個目標值target
。找出給定目標值在陣列中的開始位置和結束位置。
你的演算法時間複雜度必須是o(log n)
級別。
如果陣列中不存在目標值,返回[-1, -1]
。
輸入: nums = [5,7,7,8,8,10], target = 8
輸出: [3,4]
輸入: nums = [5,7,7,8,8,10], target = 6
輸出: [-1,-1]
class
solution
:def
searchrange
(self, nums: list[
int]
, target:
int)
-> list[
int]
: first, last =-1
,-1 start, end =0,
len(nums)-1
while start <= end:
mid =
(start + end)//2
if nums[mid]
< target:
start = mid+
1elif nums[mid]
> target:
end = mid-
1else
: first, last = mid, mid
while first-
1>=
0and nums[first-1]
== target:
first -=
1while last+
1<=
len(nums)-1
and nums[last+1]
== target:
last +=
1break
return
[first, last]
34 在排序陣列中查詢元素的第乙個和最後乙個位置
給定乙個按照公升序排列的整數陣列nums,和乙個目標值target。找出給定目標值在陣列中的開始位置和結束位置。你的演算法時間複雜度必須是 o log n 級別。如果陣列中不存在目標值,返回 1,1 示例 1 輸入 nums 5,7,7,8,8,10 target 8輸出 3,4 示例 2 輸入 n...
34 在排序陣列中查詢元素的第乙個和最後乙個位置
給定乙個按照公升序排列的整數陣列nums,和乙個目標值target。找出給定目標值在陣列中的開始位置和結束位置。你的演算法時間複雜度必須是 o log n 級別。如果陣列中不存在目標值,返回 1,1 示例 1 輸入 nums 5,7,7,8,8,10 target 8輸出 3,4 示例 2 輸入 n...
34 在排序陣列中查詢元素的第乙個和最後乙個位置
給定乙個按照公升序排列的整數陣列 nums,和乙個目標值 target。找出給定目標值在陣列中的開始位置和結束位置。你的演算法時間複雜度必須是 o log n 級別。如果陣列中不存在目標值,返回 1,1 示例 1 輸入 nums 5,7,7,8,8,10 target 8 輸出 3,4 示例 2 輸...