数据流的median

原创 2015年07月06日 23:54:47

http://www.lintcode.com/en/problem/data-stream-median/

数据流的中位数,两个优先队列,或者两个堆,题目定义是靠前的一个数为median

struct Node1{
    int val;
    bool operator<(Node1 n) const{
        return val<n.val;
    }
};
struct Node2{
    int val;
    bool operator<(Node2 n) const{
        return val>n.val;
    }
};
class Solution {
public:
    /**
     * @param nums: A list of integers.
     * @return: The median of numbers
     */
    vector<int> medianII(vector<int> &n) {
        priority_queue<Node1> pq1;//max
        priority_queue<Node2> pq2;//min
        int median=INT_MIN;
        vector<int> ans;
        for(auto e: n){
            if(pq1.size()==pq2.size()){
                if(median==INT_MIN) median=e;
                else if(median<=e) pq2.push({e});
                else {
                    pq2.push({median});
                    pq1.push({e});
                    median=pq1.top().val;
                    pq1.pop();
                }
            } else{
                if(median<=e){
                    pq1.push({median});
                    pq2.push({e});
                    median=pq2.top().val;
                    pq2.pop();
                } else pq1.push({e});
            }
            ans.push_back(median);
        }
        return ans;
    }
};


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

LeetCode 295. Find Median from Data Stream(数据流中位数)

原题网址:https://leetcode.com/problems/find-median-from-data-stream/ Median is the middle value in an ...
  • jmspan
  • jmspan
  • 2016年04月16日 11:09
  • 399

An Introduction to Least Median of Squares

  • 2015年08月11日 11:52
  • 114KB
  • 下载

median filtering

  • 2014年04月13日 14:35
  • 855B
  • 下载

中值滤波器(Median filter)特性及其实现

中值滤波器(Median filter)特性及其实现信号处理时经常要做的一件事就是滤波,其中线性滤波器比如FIR、IIR 等类型都是研究的比较透彻的,实际使用中也有很好的效果。但是有时我们遇到的信号的...

median filtering

  • 2013年05月04日 19:54
  • 1KB
  • 下载

4_Median_of_Two_Sorted_Arrays

LeetCode 4, 2016-11-12

Analysis of Median of Medians Algorithm

  • 2014年01月13日 01:54
  • 62KB
  • 下载

Median filter

  • 2013年02月24日 06:10
  • 542B
  • 下载

Median of Two Sorted Arrays C++

这道题目很多人认为是leetcode上最经典的题目之一,很早之前就见过这个题目,好像算法导论也有讲过这个题。题意是找两个排好序的数组的中位数,如果不去考虑时间空间复杂度,这个问题极其简单,用merge...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据流的median
举报原因:
原因补充:

(最多只允许输入30个字)