数字在排序数组中出现的次数
题目描述:
统计一个数字在排序数组中出现的次数。
解题思路:
public class Solution{
public int GetNumberOfK(int [] array,int k){
if (array.length == 0) return 0;
int left = 0;
int right = array.length -1;
int index = 0;
//二分法
while (left < right){
int mid = (left + right )/2;
if (k == array[mid]){
index = mid;
break;
}else if (array[left] < array[mid]){
left = mid + 1;
}else{
right = mid - 1;
}
}
//遍历查找所有的K
int count = 0;
for (int i = index;i >= 0 && array[i] == k;i --)
count ++;
for(int i = index +1; i < array.length && array[i] == k ; i ++)
count ++;
return count;
}
}