zoukankan      html  css  js  c++  java
  • 数字在排序数组中出现的次数

    题目描述

    统计一个数字在排序数组中出现的次数。
     
    class Solution {
    public:
        int GetNumberOfK(vector<int> data ,int k) {
            int n=data.size();
            int cnt=0;
            for(int i=0;i<n;i++) {
                if(data[i]==k) cnt++;
            }
            return cnt;
        }
    };
    

      

    //虽然有违出题人的本意,但是。。。
    class Solution {
    public:
        int GetNumberOfK(vector<int> data ,int k) {
          //单纯的利用了count函数。。。。。
            return count(data.begin(),data.end(),k);
        }
    };
    

      

    //因为data中都是整数,所以可以稍微变一下,不是搜索k的两个位置,而是搜索k-0.5和k+0.5
    //这两个数应该插入的位置,然后相减即可。
    class Solution {
    public:
        int GetNumberOfK(vector<int> data ,int k) {
            return biSearch(data, k+0.5) - biSearch(data, k-0.5) ;
        }
    private:
        int biSearch(const vector<int> & data, double num){
            int s = 0, e = data.size()-1;      
            while(s <= e){
                int mid = (e - s)/2 + s;
                if(data[mid] < num)
                    s = mid + 1;
                else if(data[mid] > num)
                    e = mid - 1;
            }
            return s;
        }
    };
    

      

    拥抱明天! 不给自己做枷锁去限制自己。 别让时代的悲哀,成为你人生的悲哀。
  • 相关阅读:
    (C#)asp_net调试错误解决方法收集(1)
    asp.net调试技巧
    asp。Net 页面传值
    viewState详解
    Session,ViewState用法
    asp.net中通过form表单submit提交到后台的实例
    C#读写xml文件
    Asp.Net前台调用后台变量
    3. mybatis # 与 $ 的区别
    IDEA 中 使用 git(Git)
  • 原文地址:https://www.cnblogs.com/dd2hm/p/7376298.html
Copyright © 2011-2022 走看看