int GetNumberOfK(vector<int> data ,int k) {
int low,high;
int mid1,mid2;
int res1,res2;
res1=-1;
res2=-1;
low = 0;
high=data.size()-1;
while(low<=high){ //找到最前面的k值的所在的位置
mid1 = (low+high)/2;
if(data[mid1]>k)
high=mid1-1;
if(data[mid1]<k)
low=mid1+1;
if(data[mid1]==k){
res1 = mid1;
high = mid1-1;
}
}
low = 0;
high=data.size()-1;
while(low<=high){ //找到最后面的K值所在的位置
mid2 = (low+high)/2;
if(data[mid2]<k)
low=mid2+1;
if(data[mid2]>k)
high=mid2-1;
if(data[mid2]==k){
res2 = mid2;
low = mid2+1;
}
}
if(res1==-1)
return 0;
else
return res2-res1+1;
}
统计一个数字在排序数组中出现的次数
最新推荐文章于 2020-07-13 09:58:58 发布