new排序陣列中查詢數字

2021-09-28 21:49:51 字數 1585 閱讀 8814

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

遍歷陣列統計出現次數 o(n)

二分搜尋找到乙個數,然後再分別前後掃瞄o(n)

二分查詢直接找到第乙個k和最後乙個k??o(logn)

一、.找第乙個k

先看陣列中間,mid>k,下次在陣列前半段找

mid《k,在後半段找就可以了

如果mid=k,先判斷是不是第乙個k,

1.如果中間數的前乙個也是k,那麼第乙個k在前半段找

2.如果不是k了,那mid就是第乙個k

二、找第二個k

類上三、

函式中寫:

public

intgetnumberofk

(int

array ,

int k)

int first=

getfirstk

(array,k,

0,array.length-1)

;int last=

getlastk

(array,k,

0,array.length-1)

;if(first!=-1

&&last!=-1

)return number;

}

一、.找第乙個k

先看陣列中間,mid>k,下次在陣列前半段找

mid《k,在後半段找就可以了

如果mid=k,先判斷是不是第乙個k,

1.如果中間數的前乙個也是k,那麼第乙個k在前半段找

2.如果不是k了,那mid就是第乙個k

public

class

solution

int first=

getfirstk

(array,k,

0,array.length-1)

;int last=

getlastk

(array,k,

0,array.length-1)

;if(first!=-1

&&last!=-1

)return number;

}public

intgetfirstk

(int

array,

int k,

int start,

int end)

public

intgetlastk

(int

array,

int k,

int start,

int end)

}

public

intgetfirstk

(int

array,

int k,

int start,

int end)

return-1

;}public

intgetlastk

(int

array,

int k,

int start,

int end)

return-1

;}

在排序陣列中查詢數字

題目一 數字在排序陣列 現的次數。統計乙個數字在排序陣列 現的次數。例如,輸入排序 陣列和數字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...