package common;
/**
* @author : zhaoliang
* @program :newCoder
* @description : 数字在升序数组中出现的次数
* @create : 2020/12/03 19:22
*/
public class GetNumberOfK {
//统计一个数字在升序数组中出现的次数。
public int GetNumberOfK(int[] nums,int k){
int first = binarySearch(nums,k);
int last = binarySearch(nums,k+1);
return (nums[first]==nums.length || nums[first]!=k)?0:last-first;
}
public int binarySearch(int[] nums,int k){
int l=0,h = nums.length;
while (l < h){
int m = l +(h-l)/2;
if(nums[m] <k){
l = m+1;
}else if(nums[m] >k){
h = m;
}
}
return l;
}
}
常见算法-数字在升序数组中出现的次数
最新推荐文章于 2024-09-13 16:27:15 发布