题解 | #数字在升序数组中出现的次数#

数字在升序数组中出现的次数

https://www.nowcoder.com/practice/70610bf967994b22bb1c26f9ae901fa2

public class Solution {
    // public int GetNumberOfK(int [] array , int k) {
    //    int sum  = 0;
    //     for(int i=0;i<array.length;i++){
    //         if(array[i] ==  k ){
    //             sum ++ ;
    //         }
    //     }
    //     return sum ;
    // }

     public static int GetNumberOfK(int[] array, int k) {
        return binarySearch(array, (float) (k + 0.5)) - binarySearch(array, (float) (k - 0.5));
    }

    public static int binarySearch(int[] array, float k) {
        int min = 0;
        int max = array.length - 1;
        while (max >= min) {
            int middle = (max + min) / 2;
            if (array[middle] > k) {
                max = middle - 1;
            } else if (array[middle] < k) {
                min = middle + 1;
            }
        }
        return min;
    }
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务