AcWing 67. 数字在排序数组中出现的次数
原题链接
简单
作者:
我要出去乱说
,
2021-01-26 10:05:12
,
所有人可见
,
阅读 262
class Solution {
public:
int getNumberOfK(vector<int>& nums , int k) { //使用二分查找,也可以直接遍历
if (nums.empty()) return 0;
int n = nums.size();
int l = 0, r = n - 1;
while (l < r)
{
int mid = l + r >> 1;
if (nums[mid] >= k) r = mid;
else l = mid + 1;
}
if (nums[l] != k) return 0;
int res = l;
l = 0, r = n - 1;
while (l < r)
{
int mid = l + r + 1 >> 1;
if (nums[mid] <= k) l = mid;
else r = mid - 1;
}
return r - res + 1;
}
};