数字在排序数组中出现的次数

2020-07-28  本文已影响0人  Crazy_Bear
class Solution {
public:
    int GetNumberOfK(vector<int> data ,int k) {
        if(data.empty()) return 0;
        int l=0,r=data.size()-1;
        int mid = (l+r)/2;
        while(r>=l)
        {
            if(data[mid]== k) break;
            if(data[mid]>k) 
                r=mid-1;
            if(data[mid]<k)
                l=mid+1; 
              mid = (l+r)/2;
        }
        if(data[mid]!=k)return 0;
        int tmp=mid;
        int sum=0;
        int i,j;
        for(i=mid;i>=0;i--)
            if(data[i]==k)sum++;
            else break;
        for(i=tmp+1;i<data.size();i++)
            if(data[i]==k)sum++;
            else break;
        return sum;
        
    }
};
上一篇 下一篇

猜你喜欢

热点阅读