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


京公网安备 11010502036488号