您的位置:首页 > 健康 > 养生 > 【Hot100】LeetCode—295. 数据流的中位数

【Hot100】LeetCode—295. 数据流的中位数

2024/10/6 10:33:56 来源:https://blog.csdn.net/weixin_44382896/article/details/141091240  浏览:    关键词:【Hot100】LeetCode—295. 数据流的中位数

目录

  • 1- 思路
    • ① 添加元素实现
    • ② 计算实现
  • 2- 实现
    • ⭐295. 数据流的中位数——题解思路


  • 原题链接:295. 数据流的中位数

1- 思路

  • 利用优先级队列实现一个大顶堆和一个小顶堆
  • 大顶堆用来存放较小的元素,小顶堆用来存放较大的元素

① 添加元素实现

  • 如果当前元素为偶数个
    • 新来元素放在小根堆中
    • 小根堆堆顶元素,放入大根堆
  • 如果当前元素为奇数个
    • 新来元素放在大根堆中
    • 大根堆堆顶元素,放入小根堆

② 计算实现

  • 奇数个,直接返回大根堆
  • 偶数个,返回大小根堆和除以2

2- 实现

⭐295. 数据流的中位数——题解思路

在这里插入图片描述

class MedianFinder {Queue<Integer> max;Queue<Integer> min;public MedianFinder() {max = new PriorityQueue<>();min = new PriorityQueue<>((x,y) -> (y-x));}public void addNum(int num) {if(max.size()==min.size()){min.add(num);max.add(min.poll());}else{max.add(num);min.add(max.poll());}}public double findMedian() {if(max.size()==min.size()){return (max.peek()+min.peek())/2.0;}else{return max.peek()*1.0;}}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com