数字在排序数组中出现的次数
统计一个数字在排序数组中出现的次数。
示例 1:
输入: nums = [5,7,7,8,8,10], target = 8
输出: 2
示例 2:
输入: nums = [5,7,7,8,8,10], target = 6
输出: 0
限制:
0 <= 数组长度 <= 50000
class Solution { public: int search(vector<int>& nums, int target) { if(nums.empty()) { return 0; } int left = 0; int right = nums.size() - 1; //二分查找,left为左边第一个和target相等的数字下标 while(left < right) { int mid = left + (right - left) / 2; if(target <= nums[mid]) { right = mid; } if(target > nums[mid]) { left = mid + 1; } } int max_right = nums.size(); for(int i = left; i < max_right; ++i) { if(target == nums[i]) { ++right; } } return right - left; } };