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

网站建设都有什么栏目网站如何做促销活动

网站建设都有什么栏目,网站如何做促销活动,电商插件 wordpress,苏州营销网站建设公司黄金挑战-数据流的中位数 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.yayakq.cn/news/152008/

相关文章:

  • 有哪些专门做创意门头的网站seo外包网站
  • 如何进入谷歌网站WordPress二维码动态
  • 兖州那有做网站的苏州学网站建设
  • 购物网站项目建设背景介绍北京征集网站建设
  • 网站建设和运营嘉兴市城市建设门户网站
  • 深圳前海网站设计安阳营销型网站建设
  • 东莞网页设计和网页制作seo网址超级外链工具
  • 中国著名的做网站渗透桂林网站建设官网
  • 南昌网站建设机构毕业设计怎么做网站
  • 做电子商城网站网站推广公司 优帮云
  • 北京网站开发外包公司windows优化大师好吗
  • 淘宝客api同步到网站网站里添加图片超链接怎么做
  • 家装平台都有哪些外贸seo公司
  • 六数字域名做网站好不好深圳网站开发外包
  • 成都网站开发培训机构centos一键搭建wordpress
  • 做外贸soho网站的公司吗计算机网络资源网站建设论文
  • 祁县建设局网站开发一个app成本
  • 新浪微博指数查询seo核心技术排名
  • 网站集约化建设试点wordpress输入密码注册
  • 交易平台网站制作网站建设php论文
  • 西安响应式网站建设公司公司域名注册注意事项
  • 微信网站建设报价工程建设信息网站
  • 网站建设中英语大连网站建设领超最好
  • 网站开发常用小图片企业信息查询网官网
  • 学校网站建设计入哪个会计科目厦门网页定制
  • 学做烘培的网站宁波seo排名公司
  • 网站开发公司网站官网哪个网站做外贸假发好
  • 网站建设电商深圳创建公司注意事项
  • 清远建设局网站网站开发语言查询
  • 网站开发 平台西坝河网站建设