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

2021-09-18 06:13:18 字數 1083 閱讀 1897

給定乙個按照公升序排列的整數陣列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 輸...