劍指offer第53題
題目:數字在排序陣列**現的次數
統計乙個數字在排序陣列**現的次數,例如:輸入排序書序和數字3,由於3在這個陣列**現了4次,因此輸出4
發現這個題用到了二分查詢的思想,因為陣列是排序的,所以我們可以查詢出第一次和最後一次出現k的位置,然後兩個位置差+1就是出現的次數了
貼**:
public class main
//middleindex陣列中中間位置的下標
int middleindex=(start+end)/2;
//middledata陣列中中間位置的值
int middledata=data[middleindex];
if(middledata==k)else
//二分查詢k的範圍
}else if(middledata>k)else
return getfirstk(data,length,k,start,end);
}//同理
public static int getlastk(int data,int length,int k,int start,int end)
int middleindex=(start+end)/2;
int middledata=data[middleindex];
if(middledata==k)
}return number;
}}
在排序陣列中查詢數字
題目一 數字在排序陣列 現的次數。統計乙個數字在排序陣列 現的次數。例如,輸入排序 陣列和數字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...
在排序陣列中查詢數字
在排序陣列中查詢數字 統計乙個數字在排序陣列 現的次數。示例 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...