统计一个数字在排序数组中出现的次数。
public class Solution {
public int GetNumberOfK(int [] array , int k) {
int result=0,low=0,high=array.length-1,mid=0;
while(low<=high){
mid=(high+low)/2;
if(array[mid]==k){
result++;// 先将结果值+1
break;// 循环终止
}
else if(k < array[mid])
high = mid - 1;
else
low = mid + 1;
}
//判断是否有重复k值
for(int i=mid+1;i<array.length;i++){
if(array[i]==k)result++;
else break;// 如果不相等了结束循环(数组已经排序了,后面不可能有再相等的了)
}
for(int i=mid-1;i>=0;i--){
if(array[i]==k)result++;
else break;// 如果不相等了结束循环(数组已经排序了,后面不可能有再相等的了)
}
return result;
}
}