题解 | #数字在升序数组中出现的次数#
数字在升序数组中出现的次数
http://www.nowcoder.com/practice/70610bf967994b22bb1c26f9ae901fa2
二分查找
public class Solution {
public int GetNumberOfK(int [] array , int k) {
int left = 0;
int right = array.length-1;
int mid = 0;
while(left < right) {
mid = (left + right) / 2;
if (k == array[mid]) {
break;
} else if (k < array[mid]) {
right = mid - 1;
} else {
left = mid + 1;
}
}
int i = mid;
int count = 0;
while (i < array.length && array[i] == k) {
count++;
i++;
}
i = mid-1;
while(i >= 0 && array[i] == k) {
count++;
i--;
}
return count;
}
}