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

2021-10-02 11:23:25 字數 732 閱讀 9112

題目:

給定乙個按照公升序排列的整數陣列 nums,和乙個目標值 target。找出給定目標值在陣列中的開始位置和結束位置。

要求:演算法時間複雜度必須是 o(log n) 級別。

如果陣列中不存在目標值,返回 [-1, -1]。

class

solution

else

mid =

(left + right)/2

;if(left > right)

return res;

} left = right = mid;

while

(left >=

0&& nums[left]

== target) left--

; res[0]

= left +1;

while

(right < nums.

size()

&& nums[right]

== target) right++

; res[1]

= right -1;

return res;}}

;

題解:

採用二分法先將目標值的位置找到,然後根據這個位置向左向右查詢,找到最左端位置為元素的第乙個位置,最右邊端位置為元素的最後乙個位置。

需要注意查詢最左端最右端的位置時,left 多減了一次,right 多加了一次。

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

1 include 000庫函式.h 2 3 使用二分法查詢到目標值的位置,然後分兩邊再查詢出起始位置和終止位置4 16ms 不是嚴格意義上的logn的複雜度 5class solution 9int i 0,j nums.size 1 10 int m 1 11 while i j 17if nu...

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

給定乙個按照公升序排列的整數陣列 nums,和乙個目標值 target。找出給定目標值在陣列中的開始位置和結束位置。你的演算法時間複雜度必須是 o log n 級別。如果陣列中不存在目標值,返回 1,1 示例 1 輸入 nums 5,7,7,8,8,10 target 8 輸出 3,4 示例 2 輸...

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

給定乙個按照公升序排列的整數陣列nums,和乙個目標值target。找出給定目標值在陣列中的開始位置和結束位置。你的演算法時間複雜度必須是o log n 級別。如果陣列中不存在目標值,返回 1,1 輸入 nums 5,7,7,8,8,10 target 8 輸出 3,4 輸入 nums 5,7,7,...