题目指明要二分法,二分法其实就是中间劈一刀,左边干左边的右边干右边的,左右继续二分,分了还可分,直到只剩一个数为止,也就是递归。
public class Solution {
public int GetNumberOfK(int [] array , int k) {
if(array.length==0)return 0;
return sort(array,0,array.length-1,k);
}
public int sort(int[] arr,int start,int end,int k){
if(start>=end)return arr[start]==k?1:0;
int count = 0;
int mid = start + (end-start)/2;
int i = sort(arr,start,mid,k);
int j = sort(arr,mid+1,end,k);
return count+i+j;
}
}