LeetCode 面试题53 在排序数组中查找数字

题目描述:
统计一个数字在排序数组中出现的次数。

思路:
当然用哈希表比较方便,但是显然这道题是让用二分法来做

代码如下:

class Solution {
public:
    int search(vector<int>& nums, int target) {
        if(nums.size()<1)  return 0;
        int left=0,right=nums.size()-1;
        while(left<right){
            if(nums[(left+right)/2]<target)
            left=(left+right)/2+1;
            else right=(left+right)/2;
        }
        if(nums[left]!=target)   return 0;
        int sum=0;
        while(left<nums.size()){
            if(nums[left]==target){
                sum++;
                left++;
            }
            else return sum;
        }
        return sum;
    }
};

你可能感兴趣的:(leetcode)