统计一个数字在排序数组中出现的次数。
public class Solution { public int GetNumberOfK(int [] array , int k) { //求插入k-0.5与k+0.5插入到array位置的差 return insert(array,k+0.5)-insert(array,k-0.5); } //编写插入函数 private int insert(int [] array,double num){ int left=0,right=array.length-1; //二分法查找num要插入的位置 while(left<=right){ //!!!!!!!!!!!!!!!为何原作者要+left? int mid=(right-left)/2+left; //中间值小于num,更新left if(array[mid]<num) left=mid+1; //中间值大于num,更新right else if(array[mid]>num) right=mid-1; } return left; } }