两种解题方法:
一、因为数组是升序的,所以就从头开始遍历,遍历到那个数大于k为止,思路比较简单,提交也通过了。
二、用二分法,判断数组中间的数,如果正好等于k或者数组已经不可分,则从中间分别向两头找相等的数,同时计数,最后返回总数。如果是大于k,则递归数组的左半部分;小于k,则递归数组的右半部分。
function GetNumberOfK(data, k)
{
    /*
    let i=0;
    let count=0;
    while(data[i]<=k){
        if(data[i]==k){
            count++;
        }
        i++;
    }
    return count;
    */
    const mid = Math.floor(data.length/2);
    if(data[mid] == k || data.length < 2){
        let count=0;
        let i = mid;
        while(i>=0 && data[i] == k){
            count++;
            i--;
        }
        i = mid+1;
        while(i<data.length && data[i] == k){
            count++;
            i++;
        }
        return count;
    }
    else if(data[mid]<k){
        return GetNumberOfK(data.slice(mid+1), k)
    }
    else if(data[mid]>k){
        return GetNumberOfK(data.slice(0,mid), k)
    }

}
module.exports = {
    GetNumberOfK : GetNumberOfK
};