剑指 Offer 53 - I. 在排序数组中查找数字 I
统计一个数字在排序数组中出现的次数。
输入: nums = [5,7,7,8,8,10], target = 8
输出: 2
输入: nums = [5,7,7,8,8,10], target = 6
输出: 0
int search(int* nums, int numsSize, int target)
{
int left = 0;
int right = numsSize - 1;
int count = 0;
while(left <= right)
{
int mid = (left + right)>>1;
if(nums[mid] == target)
{
for(int i = mid - 1; i >= 0 && nums[i] == target; --i)
{
count++;
}
for(int i = mid; i < numsSize && nums[i] == target; ++i)
{
count++;
}
break;
}
else if(nums[mid] < target)
{
left = mid + 1;
}
else
{
right = mid - 1;
}
}
return count;
}