当前位置: 首页 > news >正文

高端文化网站模板广西桂林

高端文化网站模板,广西桂林,校园网门户网站建设方案,一定要用c 做网站吗题目: 中位数是有序整数列表中的中间值。如果列表的大小是偶数,则没有中间值,中位数是两个中间值的平均值。 例如 arr [2,3,4] 的中位数是 3 。 例如 arr [2,3] 的中位数是 (2 3) / 2 2.5 。 实现 MedianFinder 类: MedianFinder() 初始化…

题目:
中位数是有序整数列表中的中间值。如果列表的大小是偶数,则没有中间值,中位数是两个中间值的平均值。
例如 arr = [2,3,4] 的中位数是 3 。
例如 arr = [2,3] 的中位数是 (2 + 3) / 2 = 2.5 。
实现 MedianFinder 类:
MedianFinder() 初始化 MedianFinder 对象。
void addNum(int num) 将数据流中的整数 num 添加到数据结构中。
double findMedian() 返回到目前为止所有元素的中位数。与实际答案相差 10-5 以内的答案将被接受。

题解:
① 双指针 + 有序集合
用一个有序集合存储,然后取其中中间那一个或者中间那两个就行

但有序集合中,不能直接取其中第 n 个大的元素
每一次遍历到第 n 个,又会导致效率过低
所以通过双指针,指向中间那一个或者中间那两个

然后根据插入值的大小和指针指向的值的大小比对,判断不同情况,进行移动指针

(这个有序集合不能是 set,因为 set 会去重,可以用 multiset)

② 优先队列
(最开始不知道 multiset,所以用的这个方法)

既然想不到用什么集合能快速找到第 n 个大小的值
但应该能想到我们可以快速会得到最大值和最小值,优先队列

一个序列我们可以分为
左边 n 个数              中位数              右边 n 个数

左边维护一个优先队列,我们只需要知道最大值
右边维护一个优先队列,我们只需要知道最小值

然后根据不同情况,进行不同的插入优先队列,取出值的操作即可

代码如下:

class MedianFinder {
public:bool flag = true;int left = INT_MAX, right = INT_MAX;priority_queue<int> left_temp;priority_queue<int, vector<int>, greater<int> > right_temp;MedianFinder() {}void addNum(int num) {if(left == INT_MAX) {left = right = num;flag = !flag;return;}if(num >= right) {if(flag) {left_temp.push(left);right_temp.push(num);left = right;}else {right_temp.push(num);right = right_temp.top();right_temp.pop();}}else if(num <= left) {if(flag) {left_temp.push(num);right_temp.push(right);right = left;}else {left_temp.push(num);left = left_temp.top();left_temp.pop();}}else {left_temp.push(left);right_temp.push(right);left = right = num;}flag = !flag;}double findMedian() {return (left + right) / 2.0;}
};/*** Your MedianFinder object will be instantiated and called as such:* MedianFinder* obj = new MedianFinder();* obj->addNum(num);* double param_2 = obj->findMedian();*/
http://www.yayakq.cn/news/763873/

相关文章:

  • 华为网站建设方案模板排名优化百度
  • 重庆市建设工程施工安全管理总站微信商城开发实惠华网天下
  • 电子商务网站建设与维护论文石家庄大型网站设计公司
  • 移动网站优化天津个人专业做网站
  • 网站制作知名 乐云践新专家如何更改网站备案号
  • 免费微网站建设小型企业互联网解决方案
  • 网站页面设计模板建设一个网站的需求分析
  • 网站怎么做分站在建设银行网站上还贷
  • 查询建筑资质的网站做网站怎么调用栏目
  • 建网页和网站的区别照片墙网站源码
  • 网站百度一直没有收录网站建设运营知识
  • 登录入口电脑优化软件排行榜
  • 好的网站首页建设公司网站建设个人工作室
  • 网站代码设计网络服务公司注册官网
  • 永久免费手机网站建设教程沈阳单页网站制作
  • 哪家企业做网站网站建设利弊
  • 私人网站建设步骤天门市网站建设seo
  • 安全网站建设与服务的关系精准营销的成功案例
  • 镇江百度送网站可以做任务的网站
  • 保定网站制作方案电商网站 手续
  • 大学个人网站期末作业做美缝在哪个网站接单
  • 免费邯郸网站建设网站开发架构mvc
  • 酒店网站模版做推广又能做网站
  • 南京网站设计ui保定网络公司建设网站
  • 厦门网站建设企自适应门户网站模板
  • 购物网站系统建设方案怎么做赌钱网站
  • 靖江网站设计中国企业100强排名
  • 做一个公司网站靖江做网站的单位
  • 传媒建站推荐龙华专业做网站公司
  • 网站建设中 html5 源码电子商务网站界面设计实验报告