题目
统计一个数字在升序数组中出现的次数
思路
二分法找目标数字的最右边界。
代码
public class Solution {
public int GetNumberOfK(int [] nums , int target) {
return divide(nums, target) - divide(nums, target-1);
}
//返回目标值右边一个的下标
public int divide(int[] nums, int target){
int left = 0;
int right = nums.length - 1;
while(left <= right){
int m = (left + right) / 2;
if(nums[m] <= target){
left = m + 1;
}else{
right = m -1;
}
}
return left;
}
}