Leetcode Find Median from Data Stream
来源:互联网 发布:淘宝上有高仿手表买么 编辑:程序博客网 时间:2024/04/28 17:23
题意:找出一列数组中的中位数。
思路:使用multiset,并维护一个指针,指向中位数,根据新加入的数的大小来向左向右移动指针。
class MedianFinder {public: /** initialize your data structure here. */ MedianFinder() { mid = INT_MIN; cout = 0; it = s.begin(); } void addNum(int num) { s.insert(num); cout ++; if((double)num >= mid || (double)num >= *it) { if(cout % 2 == 0) { tempit = it; tempit ++; mid = (*it + *tempit) / 2; } else { it ++; mid = *it; } } else { if(cout % 2 == 0) { tempit = it; it --; mid = (*it + *tempit) / 2; } else { mid = *it; } } return; } double findMedian() { return mid; } private: double mid; int cout; std::multiset<double> s; std::multiset<double>::iterator it; std::multiset<double>::iterator tempit;};/** * Your MedianFinder object will be instantiated and called as such: * MedianFinder obj = new MedianFinder(); * obj.addNum(num); * double param_2 = obj.findMedian(); */
另一种思路是维护两个优先队列,一个大于中位数,一个小于中位数。
0 0
- Find Median from Data Stream leetcode 295
- LeetCode Find Median from Data Stream
- leetcode 295:Find Median from Data Stream
- leetcode 295 : Find Median from Data Stream
- [LeetCode 295] Find Median from Data Stream
- Leetcode -- Find Median from Data Stream
- leetcode之Find Median from Data Stream
- [LeetCode] Find Median from Data Stream
- [leetcode][C++]Find Median from Data Stream
- LeetCode Find Median from Data Stream 堆
- leetcode Find Median from Data Stream
- [LeetCode]Find Median from Data Stream
- leetcode笔记:Find Median from Data Stream
- Leetcode 295. Find Median from Data Stream
- Leetcode - 295. Find Median From Data Stream
- [leetcode] 295. Find Median from Data Stream
- leetcode:Find Median from Data Stream
- LeetCode 295. Find Median from Data Stream
- JSON-lib使用手册
- 图形处理——分类目录
- Html+Css 知识点总汇
- PendingIntent的用法和与Intent区别
- 【SinGuLaRiTy-1006】 ZKW-RegTree ZKW线段树
- Leetcode Find Median from Data Stream
- JavaScript 知识点汇总
- OpenGL——封装自己的Opengl类
- 实现dubbo服务降级
- Ubuntu16.04 apache2配置虚拟主机
- jQuery 知识点汇总
- 生成模型与判别模型
- 基因相关性
- TV Picture菜单的基本参数和属性