题解 | #数字在升序数组中出现的次数#
数字在升序数组中出现的次数
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; } }