34. 在排序陣列中查詢元素的第乙個和最後乙個位置
難度:中等 ?
給定乙個按照公升序排列的整數陣列nums
,和乙個目標值target
。找出給定目標值在陣列中的開始位置和結束位置。
如果陣列中不存在目標值target
,返回[-1, -1]
。
高階:
示例 1:
輸入:nums = [5,7,7,8,8,10], target = 8
輸出:[3,4]
示例 2:
輸入:nums = [5,7,7,8,8,10], target = 6
輸出:[-1,-1]
示例 3:
輸入:nums = , target = 0
輸出:[-1,-1]
pyt
hon3
python3
python
3 內建 bis
ec
tbisect
bisect
模組 c ++
c++c+
+ 中 low
er_b
ound
lower\_bound
lower_
boun
d 和 upp
er_b
ound
upper\_bound
upper_
boun
d 函式
python3
class solution:
def searchrange
(self, nums: list[
int]
, target:
int)
-> list[
int]
:if target not in nums:
return[-
1,-1
] left = bisect.
bisect_left
(nums,target)
right = bisect.
bisect_right
(nums,target)-1
return
[left,right]
c++
class solution
;else
return vector<
int>;}
};
時間複雜度:o(l
ogn)
o(logn)
o(logn
) ,其中 n
nn 為陣列的長度。二分查詢的時間複雜度為 o(l
ogn)
o(logn)
o(logn
) ,一共會執行兩次,因此總時間複雜度為 o(l
ogn)
o(logn)
o(logn
) 空間複雜度:o(1
)o(1)
o(1)
。只需要常數空間存放若干變數。
34 在排序陣列中查詢元素的第乙個和最後乙個位置
給定乙個按照公升序排列的整數陣列nums,和乙個目標值target。找出給定目標值在陣列中的開始位置和結束位置。你的演算法時間複雜度必須是o log n 級別。如果陣列中不存在目標值,返回 1,1 輸入 nums 5,7,7,8,8,10 target 8 輸出 3,4 輸入 nums 5,7,7,...
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...