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

2022-06-04 11:51:15 字數 1343 閱讀 8778

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 (nums[t] > target) j = t - 1;18

else i = t + 1;19

}20if (m == -1) return

v;

21int t =m;

22while (t >= 0 && nums[t] == target) --t;

23 v[0] = (t + 1

);24 t =m;

25while (t < nums.size() && nums[t] == target) ++t;

26 v[1] = (t - 1

);27

return

v;28}29

};30

31//

複雜度滿足logn

32class

solution

43if (nums[right] != target) return

res;

4445 res[0] =right;

46 right =nums.size();

47while (left 52 res[1] = left - 1;53

return

res;54}

55};

56void

t034() ;

60 n = s.searchrange(n, 8

);61 cout << n[0] << "

"<< n[1] <62 n = ;

63 n = s.searchrange(n, 9

);64 cout << n[0] << "

"<< n[1] <65 n = ;

66 n = s.searchrange(n, 8

);67 cout << n[0] << "

"<< n[1] <68 n = ;

69 n = s.searchrange(n,1

);70 cout << n[0] << "

"<< n[1] <7172 }

在排序陣列中查詢元素

34.在排序陣列中查詢元素的第乙個和最後乙個位置。給定乙個按照公升序排列的整數陣列 nums,和乙個目標值 target。找出給定目標值在陣列中的開始位置和結束位置。你的演算法時間複雜度必須是 o log n 級別。如果陣列中不存在目標值,返回 1,1 include include include...

leetcode 18 在排序陣列中查詢元素

給定乙個按照公升序排列的整數陣列 nums,和乙個目標值 target。找出給定目標值在陣列中的開始位置和結束位置。你的演算法時間複雜度必須是 o log n 級別。如果陣列中不存在目標值,返回 1,1 二分查詢,然後再遞迴二分查詢 head,mid 1 mid 1,tail 結果絕世 right ...

在排序陣列中查詢數字

題目一 數字在排序陣列 現的次數。統計乙個數字在排序陣列 現的次數。例如,輸入排序 陣列和數字3,由於3在這個數 組 現了4次,因此輸出4。設計乙個改進的二分查詢法,分別查詢陣列中第乙個該數字和最後乙個該數字,找到之後 利用索引計算中間該數字的個數 package helen.c public cl...