用二分法分别找k-0.5和k+0.5应该插入的位置,位置距离即k的个数
class Solution {
public:
int bSearch(const vector<int> &vec, double k)
{
int beg = 0;
int end = vec.size() - 1;
while (beg <= end)
{
int mid = (beg + end);
if (k < vec[mid])
{
end = mid - 1;
}
else
{
beg = mid + 1;
}
}
return beg;
}
int GetNumberOfK(vector<int> vec ,int k) {
int start = bSearch(vec, k - 0.5);
int end = bSearch(vec, k + 0.5);
cout << start << "," << end << endl;
return end - start;
}
};