AcWing 67 數字在排序陣列中出現的次數

2021-09-12 13:46:09 字數 615 閱讀 6820

題目描述:

統計乙個數字在排序陣列**現的次數。

例如輸入排序陣列[1, 2, 3, 3, 3, 3, 4, 5]和數字3,由於3在這個陣列**現了4次,因此輸出4。

樣例

輸入:[1, 2, 3, 3, 3, 3, 4, 5] ,  3

輸出:4

分析:

方法一:直接遍歷

很簡單的查詢題目。遍歷到k時開始計數,遍歷到其他數時計數截止。時間複雜度為o(n)。

class solution 

for(;i < nums.size();i++)

return ans;

}};

方法二:二分

兩次二分,分別找到第乙個出現k的位置和最後乙個出現k的位置。時間複雜度為o(logn)。注意兩次二分的不同寫法。

class solution 

if(nums[l - 1] != k) return 0;

int end = l;

l = 0,r = end;

while(l < r)

return end - l;

}};

在排序陣列中查詢數字

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

在排序陣列中查詢數字

統計乙個數字在排序陣列 現的次數。例如,輸入排序陣列和數字3,由於3在這個陣列 現了4次,因此輸出4。有序陣列,二分查詢 思路 用二分查詢分別找到待找數字的第乙個和最後乙個 class solution def getnumberofk self,data,k number 0 if data no...

在排序陣列中查詢數字

劍指offer第53題 題目 數字在排序陣列 現的次數 統計乙個數字在排序陣列 現的次數,例如 輸入排序書序和數字3,由於3在這個陣列 現了4次,因此輸出4 發現這個題用到了二分查詢的思想,因為陣列是排序的,所以我們可以查詢出第一次和最後一次出現k的位置,然後兩個位置差 1就是出現的次數了 貼 pu...