题目指明要二分法,二分法其实就是中间劈一刀,左边干左边的右边干右边的,左右继续二分,分了还可分,直到只剩一个数为止,也就是递归。

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;
    }
}