在排序陣列中查詢數字

2021-09-26 10:44:19 字數 1067 閱讀 8865

統計乙個數字在排序陣列**現的次數。例如,輸入排序陣列和數字3,由於3在這個陣列**現了4次,因此輸出4。

有序陣列,二分查詢

思路:用二分查詢分別找到待找數字的第乙個和最後乙個

class solution:

def getnumberofk(self, data, k):

number =0

if data != none and len(data) >0:

length =len(data)

first =self.getfirst(data, length, k, 0, length-1)

last =self.getlast(data, length, k, 0, length-1)

if first >-1:

number =last -first +1

return number

def getfirst(self, data, length, k, start, end):

while start <= end:

middle =(start+end)//2

if data[middle] ==k:

if middle >0 and data[middle-1]==k:

end =middle-1

else:

return middle

elif data[middle]>k:

end =middle-1

else:

start =middle+1

return -1

def getlast(self, data, length, k, start, end):

while start <= end:

middle =(start+end)//2

if data[middle]==k:

if middle k:

end =middle -1

else:

start =middle+1

return -1

在排序陣列中查詢數字

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

在排序陣列中查詢數字

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

在排序陣列中查詢數字

在排序陣列中查詢數字 統計乙個數字在排序陣列 現的次數。示例 1 輸入 nums 5,7,7,8,8,10 target 8輸出 2 示例 2 輸入 nums 5,7,7,8,8,10 target 6輸出 0 我的思路 二分查詢到target,再分別向前向後找等於target的值 public i...