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

网站建设作用网页版

网站建设作用,网页版,wordpress www跳转,东营考试信息网思路: 1.使用数组来实现存储,但是对于数组来说,重新排列数组时间复杂度高,效率低 2.为了提高效率,需要高效率的可排列元素的容器:优先队列;使用使用两个优先队列来实现小大根堆存储前后半部分数据。根据队列…

思路:
1.使用数组来实现存储,但是对于数组来说,重新排列数组时间复杂度高,效率低
2.为了提高效率,需要高效率的可排列元素的容器:优先队列;使用使用两个优先队列来实现小大根堆存储前后半部分数据。根据队列尺寸来调整两队列中的元素。
原题链接:https://leetcode.cn/problems/find-median-from-data-stream/description/?favorite=2ckc81c

1.题目如下:

中位数是有序整数列表中的中间值。如果列表的大小是偶数,则没有中间值,中位数是两个中间值的平均值。

例如 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 以内的答案将被接受。

示例 1:

输入
["MedianFinder", "addNum", "addNum", "findMedian", "addNum", "findMedian"]
[[], [1], [2], [], [3], []]
输出
[null, null, null, 1.5, null, 2.0]

解释
MedianFinder medianFinder = new MedianFinder();
medianFinder.addNum(1); // arr = [1]
medianFinder.addNum(2); // arr = [1, 2]
medianFinder.findMedian(); // 返回 1.5 ((1 + 2) / 2)
medianFinder.addNum(3); // arr[1, 2, 3]
medianFinder.findMedian(); // return 2.0

提示:

-105 <= num <= 105
在调用 findMedian 之前,数据结构中至少有一个元素
最多 5 * 104 次调用 addNum 和 findMedian

2.代码如下:

class MedianFinder {
public://小根堆和大根堆priority_queue<int, vector<int>, less<int>> queMin;priority_queue<int, vector<int>, greater<int>> queMax;
/*该题的重点是如何存储属数据方便存取中位数;
*/
//思路一:使用有序数组来实现存储,但是对于数组来说,重新排列数组时间复杂度高,效率低
//思路二:为了提高效率,使用使用两个优先队列来实现大根堆存储数据,对数据自动排序
/*对排序过的元素如何判断中位数;队列无法进行随机存储;通过两个优先队列来实现,将前后半部分元素分开
*/MedianFinder() {}void addNum(int num) {// 注意判断为空条件在先if(queMin.empty() || num<=queMin.top() ){queMin.push(num);//维持两队列平衡,小根堆元素不能大于大根堆超过1if(queMin.size()>queMax.size()+1){int temp=queMin.top();queMax.push(temp);queMin.pop();}}else{queMax.push(num);//设定大根堆的元素应该比小根堆小1or相等if(queMax.size()>queMin.size()){int temp=queMax.top();queMin.push(temp);queMax.pop();}}}double findMedian() {if(queMin.size()>queMax.size()){return queMin.top();}return (queMax.top()+queMin.top())/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.dtcms.com/wzjs/346236.html

相关文章:

  • 天津网站建设设计费用赵阳竞价培训
  • 响应式学校网站模板百度400电话
  • 站长如何做导航网站百度提交入口地址在哪
  • 我想在家办个小型加工厂绍兴网站快速排名优化
  • 恒美广告公司seo优化运营
  • 用xml可不可以做网站百度开户流程
  • 阆中市住房和城乡建设局网站内部优化
  • 网站流量变现网络营销工资一般多少
  • 如何做品牌网站设计营销组合策略
  • 网站模板插件怎么可以让百度快速收录视频
  • 建站平台转型优化是什么意思
  • 网络服务和 网络管制问题重庆seo网页优化
  • 网站的导航用css怎么做网站宣传方法
  • wordpress 文章自定义手机卡顿优化软件
  • 哈尔滨专业网站建设定制宁德市中医院
  • 用vb做网站网站搭建流程
  • 个人网站备案有什么限制seo实战密码第四版pdf
  • 搭网站可以用自己电脑做服务器吗互联网推广怎么找渠道
  • 有网站怎样做推广电脑优化软件哪个好用
  • 网站seo方案策划书指数基金定投技巧
  • steam课程做网站百度排名竞价
  • 深圳旅游必去十大景点青岛seo霸屏
  • 传媒网站设计免费网站 推广网站
  • 制作网站的公司百度免费广告发布平台
  • DW做旅游网站模板线上推广渠道有哪些
  • 做淘宝客网站需要注意什么今天有什么新闻
  • 通用集团网站模板百度收录申请入口
  • 报纸做垂直门户网站恢复正常百度
  • 我做的网站服务器别人没法左键点击下载呢输入关键词就能写文章的软件
  • 保定清苑城市建设网站企业网站有什么