public int GetNumberOfK(int [] array , int k) { int left = 0; int right = array.length - 1; //1. 使用二分法确定左边界,即第一个等于k的索引位置 while(left < right){ int mid = (right - left)/2 + left; if(array[mid] >= k){ right = mid; }else{ left = mid + 1; } } //2. 遍历统计等于k的元素个数 int ans = 0; while(left < array.length && array[left] == k){ ans++; left++; } return ans; }