题目:
统计一个数字在排序数组中出现的次数。例如输入排序数组{1,2, 3,3,3,3,4,5}和数字3,由于3在这个数组中出现了4次,因此输出4。
代码:
class Solution {
public:
int total(vector<int>& nums,int start,int end,int target){
if(start>end)return 0;
if(start==end)return target==nums[start];
int mid=start+(end-start)/2;
if(nums[mid]>target)return total(nums,start,mid-1,target);
else if(nums[mid]<target)return total(nums,mid+1,end,target);
else{
return total(nums,start,mid-1,target)+total(nums,mid+1,end,target)+1;
}
}
int search(vector<int>& nums, int target) {
return total(nums,0,nums.size()-1,target);
}
};