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

松江区网站开发关键词优化靠谱推荐

松江区网站开发,关键词优化靠谱推荐,宁波模板建站定制网站,邢台网上房地产1. 数据流中位数问题 题目 LeetCode295: 中位数是有序列表中间的数,如果列表长度是偶数,中位数是中间两个数的平均值, 例如:[2,3,4]的中位数是3, [2,3]中位数是(23)/ 2 2.5 设计一个数据结构: …

1. 数据流中位数问题

题目

 LeetCode295: 中位数是有序列表中间的数,如果列表长度是偶数,中位数是中间两个数的平均值,

例如:[2,3,4]的中位数是3,

[2,3]中位数是(2+3)/ 2= 2.5

设计一个数据结构:

void addNum(int num) 从数据流中添加一个整数到数据结构中

double findMedian()-返回目前所有元素的中位数。

思路

用大顶堆+小顶堆来求解,

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

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

相当于把元素分为两半,我们计算中位数,只需要小顶堆和大顶堆的根节点即可。

以[1,2,3,4,5]为例,砍成两半后为[1,2]和[3,4,5]我们只要能快速找到2和3即可。

下面看看使用两个堆是怎么变化的

  1. 添加1,进入minHeap中,中位数是1,
  2. 添加2,比民Heap堆顶元素1大,进入minHeap中,同时minHeap中元素超过了所有元素的总和的一半,所以要平衡一下,分一个给maxHeap,中位数是(1+2)/2=1.5.
  3. 添加3,它比minHeap堆顶的元素2大,进入minHeap,中位数为2。
  4. 添加4,比minHeap堆顶的元素2大,进入minHeap,,同时minHeap中元素超过了所有元素的总和的一半,所以要平衡一下,分一个给maxHeap,中位数是(2+3)/2=2.5.
  5. 添加5,它比minHeap堆顶的元素3大,进入minHeap,中位数为3。

代码

public class MediaFinder {//小顶堆存储的是比较大的元素,堆顶是其中的最小值PriorityQueue<Integer> minHeap;//大顶堆存储的是比较大的元素,堆顶是其中的最大值PriorityQueue<Integer> maxHeap;public MediaFinder(){this.minHeap = new PriorityQueue<Integer>();this.maxHeap = new PriorityQueue<Integer>((a, b) -> (b - a));}public void addNum(int num){//小顶堆存储的是比较大的元素,num比较大元素中最小的还大,所以,进入minHeapif (minHeap.isEmpty() || num > minHeap.peek()){minHeap.offer(num);//如果minHeap比maxHeap多两个元素,就平衡if (minHeap.size() - maxHeap.size() > 1){maxHeap.offer(minHeap.poll());}}else {maxHeap.offer(num);//这样可以保证多的那个元素一定在minHeap中if (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;}}
}

http://www.hkea.cn/news/659857/

相关文章:

  • 沈阳人流seo优化师就业前景
  • 开发区网站制作公司seo关键词有话要多少钱
  • 网站被篡改处理app拉新平台
  • 在线房屋设计网站seo推广平台服务
  • 电子政务门户网站建设代码短链接生成网址
  • 崔各庄地区网站建设百度非企渠道开户
  • 怎么用自己的电脑做网站服务器产品推广平台排行榜
  • 中国做的比较好的电商网站有哪些哈市今日头条最新
  • 微信怎么做网站推广百度网站优化培训
  • 网站开发支持多个币种电子技术培训机构
  • 移动网站设计与制作怎么找关键词
  • 国内移动端网站做的最好的厦门人才网597人才网
  • 建网站收费吗aso关键词覆盖优化
  • 西安的网站设计与制作首页微信视频号怎么推广引流
  • 顺义公司建站多少钱pc端百度
  • wordpress收费资源下载关键词优化的策略
  • 广州做网站建设的公司网站公司
  • 做网络平台的网站有哪些广州网站维护
  • 网页 代码怎么做网站东莞市民最新疫情
  • 电子商务网站设计中影响客户体验的元素有搜索引擎有哪些种类
  • 网站建设难点优化关键词技巧
  • 免费行情网站链接百度知道合伙人官网
  • 餐饮公司网站建设的特点大数据智能营销
  • 济南快速排名刷关键词排名seo软件
  • 系统做网站的地方百度推广登录后台登录入口
  • 集约化网站建设情况广告公司网站制作
  • 网站制作发票字节跳动广告代理商加盟
  • 义乌做网站武汉seo推广优化公司
  • 济宁哪家网站建设公司正规谷歌浏览器 免费下载
  • 有没有女的做任务的网站广东省新闻