zoukankan      html  css  js  c++  java
  • 剑指offer--47.数据流中的中位数

    时间限制:1秒 空间限制:32768K 热度指数:122511

     算法知识视频讲解

    题目描述

    如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。
    ------------------------------------------------------------------------------
    class Solution {
        public:
            void Insert(int num) {
                arr.push_back(num);
            }
    
            double GetMedian() {
                sort(arr.begin(), arr.end());
                int len = arr.size();
                if(len == 0) return 0;
                if(len == 1) return arr[0];
                if(len == 2) return (arr[0] + arr[1])*1.0/2;
                if(len & 1) {
                    return arr[len/2]*1.0;
                } else {
                    return (arr[len/2] + arr[len/2-1])*1.0 /2;
                }
            }
        private:
            vector<int> arr;
    };
  • 相关阅读:
    python 杂谈
    python: list转字符串
    dataframe
    time模块
    python 调试器
    BAT机器学习面试1000题系列(41-45题)
    join()函数
    value_counts()
    模型评估
    04flask_scripts使用
  • 原文地址:https://www.cnblogs.com/langyao/p/10631294.html
Copyright © 2011-2022 走看看