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

LeetCode 295. 数据流的中位数

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

  • 例如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次调用addNumfindMedian
class MedianFinder { priority_queue<int> lo;//大根堆 priority_queue<int,vector<int>,greater<>> hi;//小根堆 public: MedianFinder() { } void addNum(int num) { lo.push(num); hi.push(lo.top()); lo.pop(); if(hi.size()>lo.size()) { lo.push(hi.top()); hi.pop(); } } double findMedian() { if(lo.size()>hi.size()) return lo.top(); else return (lo.top()+hi.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.jsqmd.com/news/803306/

相关文章:

  • 【Perplexity×Wiley双引擎科研加速指南】:20年文献检索专家亲授3大避坑法则与5步精准定位法
  • 书匠策AI课程论文功能实测:我用一顿外卖的时间,搞定了老师给的三周作业
  • 2.PostgreSQL的逻辑结构管理
  • 从用户态到内核态:Linux Hook技术的全景实践与攻防解析
  • ArcGIS 实战:从全球STRM 90m DEM数据中精准裁剪中国区高程地图(附完整SHP边界与Python脚本)
  • GLB纹理提取工具:从原理到实践,快速无损提取3D模型贴图
  • 网盘直链下载助手:解锁九大网盘下载速度的终极方案
  • Ubuntu系统下Intel D405与Realsense-viewer的初次邂逅——从开箱到点亮
  • 电脑维修哪家技术强?南京电脑维修找我们后启匠心15150543936 - 企业推荐官【官方】
  • Windows上直接运行安卓应用的终极指南:APK安装器完整教程
  • 从SolidWorks到Simulink:手把手教你用Simscape Multibody Link搭建你的第一个虚拟样机
  • 温州地区职业装厂家实力排行:合规与产能双维度对比 - 奔跑123
  • GaussDB 运维实战:从连接监控到性能调优的日常巡检清单
  • 5分钟完全指南:免费破解城通网盘限速,实现全速下载的终极方案
  • UE4SS:5步掌握虚幻引擎游戏脚本开发与实时调试
  • 2026年泰格豪雅中国区售后服务网络优化(最新电话及地址) - 亨得利官方服务中心
  • Meta统一账号体系升级后跨境社媒团队如何降低多平台协作风险
  • Midjourney Standard计划全面评测:从订阅成本、生成配额到商用权限,一文厘清2024真实边界
  • 5分钟掌握GKD订阅管理:一站式解决Android自动化规则配置难题
  • 告别信号失真!手把手教你理解5G基站RRU里的DPD黑科技(附FPGA实现思路)
  • Qt 批量读取Excel数据:从性能瓶颈到优化实践
  • 黄骅市公司注册同城哪里办?联系我们存盛财务13731713331 - 企业推荐官【官方】
  • 抖音批量下载终极指南:douyin-downloader专业工具完整教程
  • 给文科生的NetLogo入门指南:不用写代码,5分钟看懂‘种族隔离’模型背后的逻辑
  • BrowserClaw:容器化浏览器自动化平台部署与爬虫实战指南
  • OpenClaw 成语压缩 Token 实战,6 个文件节省 50% 成本的完整指南
  • 2026年5月湖北建筑修缮团队推荐:防水补漏/漏水检修/外墙防水/防水修缮/防水维修,认准湖北顺捷兴科技发展有限公司 - 2026年企业推荐榜
  • PPTist:在线演示文稿制作工具,重新定义高效演示新体验
  • Gemini 的 getpost 区别
  • 2026纳米气凝胶毡厂家排行:贝莱特斯特保温材料(廊坊)有限公司上榜 - 奔跑123