面试题53-1:在排序数组中查找数字
文章目录
题目
统计一个数字在排序数组中出现的次数。
考点
在一个有序数组中找到第一个比目标数字大的数字的二分写法
LeetCode版本
class Solution {
public:
int findRight(vector<int> &nums, int target){
int i = 0, j = nums.size()-1;
while(i<=j){
int mid = (i+j)>>1;
if(nums[mid] <= target) i = mid + 1;
else j = mid-1;
}
return i;
}
int search(vector<int>& nums, int target) {
return findRight(nums, target) - findRight(nums,target-1);
}
};