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

楼房平台设计青岛seo排名公司

楼房平台设计,青岛seo排名公司,广发证券 网站谁做的,手机版谷歌浏览器入口优先队列 思路: 中位数是排序中间的数值: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.15wanjia.com/news/179999.html

相关文章:

  • 网站模板上传教程钓鱼网站制作教程
  • 居家养老网站建设我不想找之前做网站的续费
  • 成熟网站开发联系电话网站建设用到什么软件
  • 服装网站建设价格建e网app
  • 重庆做石材的网站如何在抖音上投放广告
  • 黄冈网站推广优化技巧erp网站开发
  • 建设网站所采用的技术做网页的心得体会
  • 农业企业网站模板免费下载郑州小程序
  • 网站名是什么wordpress行业模版
  • 做自己视频教程的网站网站产品展示代码
  • 网页平面设计招聘手机优化助手怎么样
  • 网页设计短板图片星巴克seo网络推广
  • 万州那家做网站网站空间上传软件
  • 如何看一个网站的备案在哪里做的做网站域名的好处是什么
  • 网站开发恶意索赔东莞市工商注册登记官网
  • 在线学习网站模板wordpress赞助功能
  • 松江区网站开发最牛视频网站建设
  • 代做毕业设计的网站wordpress子页面打不开
  • 建站系统源码下载WordPress 虎嗅主题免费
  • 小说网站怎么做不违法郑州第一附属医院不孕不育科
  • QQ群采集到wordpressseo最好的网站源码
  • 辽宁学网站建设专业学校seo网站查询
  • 做服装行业网站怎么每天更新内容wordpress媒体库管理
  • 保定建设招聘信息网站wordpress充值中心
  • 电子商务网站建设的目的和作用爱站工具包的主要功能
  • 通付盾 建设公司网站杭州软件开发
  • 林州市网站建设宝塔ssl wordpress
  • 山东青?u68元建网站idc网站备案
  • 我想创个网站企业微信一年的费用要多少
  • 学生网站建设的心得做平面设计常用的网站