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

公司网站建设知识国家免费职业技能培训官网

公司网站建设知识,国家免费职业技能培训官网,wordpress视频滑块,福建微网站建设价格优先队列 思路: 中位数是排序中间的数值:S1.M.S2可以使用两个优先队列来存放两边的数值,总是使得左侧的堆顶是最大的,右侧的堆顶是最小的,即使用大顶堆存放 S1,使用小顶堆存放S2,使得两个队列的…

优先队列

  • 思路:
    • 中位数是排序中间的数值:S1.M.S2
    • 可以使用两个优先队列来存放两边的数值,总是使得左侧的堆顶是最大的,右侧的堆顶是最小的,即使用大顶堆存放 S1,使用小顶堆存放S2,使得两个队列的 size 维持“平衡”,则中位数就会在两个堆顶“附近”了;
    • 维持两个队列 size 平衡:
      • 数据先 push 的大顶堆,如果是 > M 的数,则会在堆顶;如果是 < M 的数,则会沉入队列中;
      • 然后将堆顶的数 push 到小顶堆,如果是 > M 的数,会沉入队列;如果是 < M 的数,会在堆顶;
      • 将大顶堆的堆顶 pop;(因为已经 push 到小顶堆)
      • 判断一下两个队列的size,如果大顶堆的 size 少了,将小顶堆的堆顶“漏”到大顶堆;(可以将两个队列组合成漏斗,更直观)
    • 此时的中位数:
      • 如果大顶堆 size 多,则中位数是其堆顶;
      • 否则,为两个堆顶的均值;
class MedianFinder {
public:MedianFinder() {}void addNum(int num) {low.push(num);high.push(low.top());low.pop();if (low.size() < high.size()) {low.push(high.top());high.pop();}}double findMedian() {if (low.size() > high.size()) {return low.top();}return (low.top() + high.top()) / 2.0;}private:std::priority_queue<int, std::vector<int>, std::less<int>> low;std::priority_queue<int, std::vector<int>, std::greater<int>> high;
};/*** 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/647088/

相关文章:

  • 站长工具综合查询2020邯郸百度公司地址
  • 网站网页设计海报图片扁平化色彩网站
  • 创意网站建设价格多少投诉做网站的电话
  • 域名和网站建设费如何入帐传奇手游网站大全
  • 如何在网站后台删除栏目企业网站建设中在方案设计上
  • vps做网站wordpress浮动社交
  • 老外的网站怎么做求购买链接
  • 商城网站做推广有什么好处企业宽带解决方案
  • 文登建设局网站网站建设需要技术
  • 如何做测评视频网站网站平台建设重点难点分析
  • 站酷网官网进入竞价托管外包服务
  • 商会网站制作国际知名设计公司收入
  • 南浔做网站安装wordpress 此网页包含重定向循环
  • 企业二级网站怎么做做零食网站怎么样
  • 参与网站建设的人员上海市建设工程咨询奖
  • 家纺代发网站建设营销页面
  • 营销型网站建设实战网络设计方案是如何体现网络设计需求的?
  • 公司网站建设技术方案湖北省建设厅监督网站
  • 做玩网站怎么上传北京商地网站建设公司
  • 网站开发流程是什么上海商城网站
  • 漂亮的网站设计注册公司的网址是什么
  • 专做外贸的网站绍兴seo排名外包
  • 福州网站排名莱芜双休女工招聘信息
  • 做公众号主页面的有哪些网站西安千秋网络科技有限公司怎么样
  • 图书馆理论与建设网站wordpress 会员可见
  • a站免费最好看的电影片推荐北京vi设计招聘
  • 网站的虚拟人怎么做的网站让图片充满屏幕怎么做
  • 网站建设系统怎么样wordpress授权怎么破解
  • 用电脑做服务器搭建php网站淮南教育网官网
  • 怎样做吧网站排名做上去网络营销产品推广方案