题目
统计一个数字在排序数组中出现的次数。
分析
思路一:
代码:
public class Solution {
public int GetNumberOfK(int [] array , int k) {
int low = 0;
int high = array.length - 1;
int mid = low + (high - low) / 2;
int numK = 0;
while(low <= high) {
mid = low + (high - low) / 2;
if(array[mid] == k) {
numK++;
int midR = mid + 1;
int midL = mid - 1;
while(midR <= array.length - 1 && array[midR] == k) {
numK++;
midR++;
}
while(midL >= 0 && array[midL] == k) {
numK++;
midL--;
}
return numK;
} else if(array[mid] > k) {
high = mid - 1;
} else {
low = mid + 1;
}
}
return numK;
}
}