题解 | #数字在升序数组中出现的次数#
数字在升序数组中出现的次数
http://www.nowcoder.com/practice/70610bf967994b22bb1c26f9ae901fa2
public int GetNumberOfK(int [] array, int k) {
if(array.length == 0){
return 0;
}
int n = array.length;
int l = 0;
int r = n-1;
while(l < r){
int mid = ((r-l)>>1)+l;
if(array[mid] >= k){
r = mid ;
}else{
l = mid+1;
}
}
int ll = l;
if(array[l] != k){
return 0;
}
l = 0;
r = n-1;
while(l < r){
int mid = ((r-l+1)>>1)+l;
if(array[mid] <= k){
l = mid;
}else{
r = mid-1;
}
}
return (l-ll+1);
}
}