zoukankan      html  css  js  c++  java
  • 剑指Offer

    https://www.nowcoder.com/practice/70610bf967994b22bb1c26f9ae901fa2?tpId=13&tqId=11190&tPage=2&rp=2&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

    题目描述

    统计一个数字在排序数组中出现的次数。
     
     
    class Solution {
        int findK(vector<int> &data ,int k) {
            int first = 0;
            int last = data.size() - 1;
            
            while (first <= last) {
                int mid = first + (last - first) / 2;
                if (data[mid] == k) return mid;
                else if (data[mid] < k) first = mid + 1;
                else last = mid - 1;
            }
            return -1;
        }
    public:
        int GetNumberOfK(vector<int> data ,int k) {
            if (data.size() == 0) return 0;
            int idx = findK(data, k);
            if (idx == -1) return 0;
            int first = idx, last = idx;
            while (first >= 0 && data[first] == data[idx]) first--;
            while (last < data.size() && data[last] == data[idx]) last++;
            return last - first -1;
        }
    };
  • 相关阅读:
    smarty
    js进阶
    JS 基础
    php之面向对象(2)
    php之面向对象(1)
    PHP之图形处理
    PHP代码分离
    PHP文件上传与安全
    PHP substr截取中文字符出现乱码的问题解疑
    关于学习方法
  • 原文地址:https://www.cnblogs.com/charlesblc/p/8446622.html
Copyright © 2011-2022 走看看