题解 | #JZ72 数字在升序数组中出现的次数#
数字在升序数组中出现的次数
http://www.nowcoder.com/practice/70610bf967994b22bb1c26f9ae901fa2
//二分查找
class Solution {
public:
int GetNumberOfK(vector<int> data ,int k) {
int leftBound, rightBound;
//查找下界
int left = 0, right = data.size();
while (left < right) {
int mid = (left + right) / 2;
if (data[mid] < k) left = mid + 1;
else right = mid;
}
leftBound = left;
//查找上界
left = 0, right = data.size();
while (left < right) {
int mid = (left + right) / 2;
if (data[mid] <= k) left = mid + 1;
else right = mid;
}
rightBound = right;
return rightBound - leftBound;
}
};