题目描述
统计一个数字在排序数组中出现的次数。
代码:
class Solution {
public:
int GetNumberOfK(vector<int> a ,int k) {
int l=lsort(a,k);
int r=rsort(a,k);
return r-l+1;
}
int lsort(vector<int> a ,int k){//求第一个k位置
int l=0,r=a.size()-1;
while(l<=r){
int mid=(l+r)/2;
if(a[mid]<k)l=mid+1;
else r=mid-1;
}
return l;
}
int rsort(vector<int> a ,int k){//求第二个k位置
int l=0,r=a.size()-1;
while(l<=r){
int mid=(l+r)/2;
if(a[mid]<=k)l=mid+1;
else r=mid-1;
}
return r;
}
};