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

商丘做网站用什么程序网络维护培训班

商丘做网站用什么程序,网络维护培训班,如何查询网站收录情况,商标注册申请流程图黄金挑战-数据流的中位数 1.数据流中中位数的问题 LeetCode295 https://leetcode.cn/problems/find-median-from-data-stream/ 思路分析 中位数的问题,我们一般都可以用 大顶堆小顶堆 来求解 小顶堆(minHeap):存储所有元素中…

黄金挑战-数据流的中位数

1.数据流中中位数的问题

LeetCode295
https://leetcode.cn/problems/find-median-from-data-stream/

思路分析

中位数的问题,我们一般都可以用 大顶堆+小顶堆 来求解

小顶堆(minHeap):存储所有元素中较大的一半,堆顶元素是其中最小的数
大顶堆(maxHeap):存储所有元素中较小的一半,堆顶元素是其中最大的数

相当于,把所有元素分成了大和小两半,计算中位数,只需要大的那半的最小值和小的那半的最大值即可。

如[1,2,3,4,5],分成小顶堆[3,4,5],大顶堆[2,1],中位数为3

过程
加1 小顶堆[1] 大顶堆[] 中位数 1
加2 小顶堆[2] 大顶堆[1] 中位数 (2+1)/2
加3 小顶堆[2,3] 大顶堆[1] 中位数 3
加4 小顶堆[3,4] 大顶堆[2,1] 中位数 (3+2)/2
加5 小顶堆[3,4,5] 大顶堆[2,1] 中位数 3

代码实现

Java中的堆(即优先队列)可方便实现,c++、python里没有提供堆结构,需要自己构造

class MedianFinder {// 小顶堆中存储的是比较大的元素,堆顶是其中的最小值PriorityQueue<Integer> minHeap;// 大顶堆中存储的是比较小的元素,堆顶是中期的最大值PriorityQueue<Integer> maxHeap;public MedianFinder() {this.minHeap = new PriorityQueue<>();this.maxHeap = new PriorityQueue<>((a, b) -> b - a);}public void addNum(int num) {// 小顶堆存储的是比较大的元素,num大于小顶堆中根元素时进入minHeapif (minHeap.isEmpty() || num > minHeap.peek()){minHeap.offer(num);// 如果minHeap比maxHeap多2个元素,就平衡一下if (minHeap.size() - maxHeap.size() > 1){maxHeap.offer(minHeap.poll());}}else{maxHeap.offer(num);// 这样可以保证多的那个元素肯定在minHeapif(maxHeap.size() - minHeap.size() > 0){minHeap.offer(maxHeap.poll());}}}public double findMedian() {if(minHeap.size() > maxHeap.size()){return minHeap.peek();}else if(minHeap.size() < maxHeap.size()){return maxHeap.peek();}else{return (minHeap.peek() + maxHeap.peek())/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.rdtb.cn/news/21714.html

相关文章:

  • 做网站注意哪些成都培训机构排名前十
  • 网站建设管理自查工作总结十大教育培训机构排名
  • 闵行网站制作搜索引擎营销策略有哪些
  • 整站seo策略实施青岛seo外包服务
  • 蔬莱网站建设谷歌网站网址
  • 网站制作怎么做搜索栏市场调研的基本流程
  • 长沙营销型网站建设域名网站查询
  • 花乡做网站公司农产品网络营销推广方案
  • 牡丹江网站建设百度推广关键词规划师
  • 中央广播电视台直播入口seo运营专员
  • 石家庄网站建设.神鹿网络百度推广登陆首页
  • 襄阳营销型网站建设如何开发网站
  • 网站 做购物车在哪里做推广效果好
  • 网页设置快捷键高端网站优化公司
  • 做教育招生网站国内做网站的公司
  • wordpress笑话页面模板青岛网站建设优化
  • 什么公司做网站最好朋友圈广告投放
  • 网站建设合同报价seop
  • Wordpress 学校网站网络运营培训班多少钱
  • 宁波高端网站设计公司百度客服系统
  • wordpress代码生成器百度网盘优化
  • 做日本外贸网站设计怎么建网站赚钱
  • 做网站推销手表seo高效优化
  • 湘潭网站优化怎么让关键词快速排名首页
  • 小程序开发平台多少钱惠州seo管理
  • 榆林做网站的公司软件开发培训机构
  • 做名宿比较好的网站全自动引流推广软件免费
  • 国外政府网站建设网络营销的基本功能
  • 做dota2菠菜网站提升seo搜索排名
  • 建筑效果图网站推荐seo外包是什么