統計乙個數字在排序陣列中出現的次數

2021-08-28 04:21:53 字數 676 閱讀 8036

題目:統計乙個數字在排序陣列中出現的次數。

思路:採用二分查詢的思想,尋找該數字第一次出現的下標和最後一次出現的下標,最後將兩個下標相減加1,便可得出出現的次數。具體的**實現如下所示:

public class solution

int firstindex=getfirstindex(array,0,array.length-1,k);

int lastindex=getlastindex(array,0,array.length-1,k);

if (firstindex!=-1&&lastindex!=-1)

return 0;

}private int getfirstindex(int array, int start, int end, int k)

int mid=(start+end)/2;

if(array[mid]>k)else if(array[mid]=0&&array[mid-1]==k)else

}private int getlastindex(int array, int start, int end, int k)

int mid=(start+end)/2;

if(array[mid]>k)else if(array[mid]

統計乙個數字在排序陣列中出現的次數

題目描述 統計乙個數字在排序陣列中出現的次數。輸入 每個測試案例包括兩行 第一行有1個整數n,表示陣列的大小。1 n 10 6。第二行有n個整數,表示陣列元素,每個元素均為int。第三行有1個整數m,表示接下來有m次查詢。1 m 10 3。下面有m行,每行有乙個整數k,表示要查詢的數。輸出 對應每個...

c語言 統計乙個數字在排序陣列中出現的次數

題目 統計乙個數字在排序陣列 現的次數。比如 排序陣列 1。2,3,3,3,3,4。5 和數字3,因為3出現了4次。因此輸出4 有一種最簡單的演算法,遍歷。可是有比它效率更高的 先看遍歷 include include int num time int arr,int len,int a retur...

數字在排序陣列中出現次數

統計乙個數字在排序陣列中出現的次數。思路 求乙個數字在這個排序陣列中出現的次數,首先想到的是使用二分查詢,當我找到乙個位置,然後往前就可以到達最前面第乙個出現該數字的位置,往後就可以到達最後面最後乙個出現該數字的位置,然後兩個位置相減此時就得到該數字出現的次數。但是問題在於我用二分查詢到位置後,然後...