Practice27:
统计一个数字在升序数组中出现的次数
S1
遍历比较法
class Solution {
public:
int GetNumberOfK(vector<int> data ,int k) {
int res = 0;
for(int val:data){
if(val==k)++res;
}
return res;
}
};
S2
二分法
class Solution {
public:
int GetNumberOfK(vector<int> data ,int k) {
int lbound=0,rbound=0;
int l,r;
l=0;
r=data.size();
while(l<r){
int mid = l+(r-l)*0.5;
if(data[mid]<k){
l = mid+1;
}
else{
r = mid;
}
}
lbound = l;
r = data.size();
while(l<r){
int mid = l+(r-l)*0.5;
if(data[mid]<=k){
l = mid+1;
}
else{
r = mid;
}
}
rbound = r;
return rbound-lbound;
}
};