题目描述
统计一个数字在排序数组中出现的次数。
思路
二分查找。
代码
class Solution {
public:
int count;
int GetNumberOfK(vector<int> data ,int k) {
count = 0;
binarySearch(data, k, 0, data.size()-1);
return count;
}
void binarySearch(vector<int>& arr, int target, int left, int right){
if (left > right) return;
int mid = (left+right) / 2;
if (arr[mid] == target){
count++;
binarySearch(arr, target, left, mid-1);
binarySearch(arr, target, mid+1, right);
}
else if (arr[mid] < target)
binarySearch(arr, target, mid+1, right);
else
binarySearch(arr, target, left, mid-1);
}
};