题目描述
统计一个数字在排序数组中出现的次数。
分类:数组
解法1:二分法,找到该数字以后,向两边扩展统计出现的次数
分类:数组
解法1:二分法,找到该数字以后,向两边扩展统计出现的次数
public class Solution {
public int GetNumberOfK(int [] array , int k) {
if(array.length==0) return 0;
int low = 0;
int high = array.length-1;
int mid = (low+high)/2;
int count = 0;
while(low<=high){
mid = (low+high)/2;
if(array[mid]>k){
high = mid-1;
}else if(array[mid]<k){
low = mid+1;
}else{
count = 1;
int temp = mid-1;
while(temp>=0 && array[temp]==array[mid]){
count++;
temp--;
}
temp = mid+1;
while(temp<array.length && array[temp]==array[mid]){
count++;
temp++;
}
break;
}
}
return count;
}
}