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

来源:互联网 发布:网络预约挂号 编辑:程序博客网 时间:2024/05/17 09:15


class Solution {public:    int first = -1;    int last = -1;    bool flag = false;    void findK(vector<int> data,int k,int start,int end){        if(start > end || flag)            return;        int middle = (end + start) / 2;        if(k == data[middle]){            first = middle;            while(first - 1 >= 0 && data[first-1] == k)                --first;            last = middle;            while(last + 1 < data.size() && data[last+1] == k)                ++last;            flag = true;        }else{            findK(data,k,start,middle-1);            findK(data,k,middle+1,end);        }    }int GetNumberOfK(vector<int> data ,int k) {if(data.size() == 0)            return 0;        findK(data,k,0,data.size()-1);        if(last == -1)            return 0;        return last - first + 1;}};


0 0