34 在排序陣列中查詢元素的第乙個和最後乙個位置

2021-10-11 02:27:17 字數 1656 閱讀 2171

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...