美文网首页
数字在排序数组中出现的次数

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

作者: Crazy_Bear | 来源:发表于2020-07-28 09:33 被阅读0次
  • 统计一个数字在排序数组中出现的次数。
  • 可以分别求出这个数字最后出现的和最早出现的位置,得到差值即可
  • C++ 代码
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;
        
    }
};

相关文章

网友评论

      本文标题:数字在排序数组中出现的次数

      本文链接:https://www.haomeiwen.com/subject/dlrjlktx.html