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

网站关键字设置格式海外网红营销平台

网站关键字设置格式,海外网红营销平台,网页截图快捷键,怎么制作表格excel初学者视频这道题第一次做,属于是设计题,没啥思路,我直接去看灵神的题解了,感觉灵神这一题的思路写的还比较通俗易懂。 这道题主要是要设计出一种数据结构,能够方便的算出中位数,这里也可以用数组来实现,但…


这道题第一次做,属于是设计题,没啥思路,我直接去看灵神的题解了,感觉灵神这一题的思路写的还比较通俗易懂。
这道题主要是要设计出一种数据结构,能够方便的算出中位数,这里也可以用数组来实现,但是每一次计算中位数都需要将数组进行排序,十分耗时,我们希望设计这样一种结构:当我们需要计算中位数时,应当以O(1)的时间复杂度找到中间或者中间的两位数,并直接计算,对于其他元素我们并不关心。
综上,我们可以用两个优先队列(堆)来实现,一个定义为最大堆,用于存储较小的一半元素,另一个定义为最小堆,用于存储较大的另一半元素,因此,右侧的任意总是大于等于左侧的所有元素。我们规定:左侧的元素最多仅比右侧的元素多一个,右侧的元素个数在任何情况下都不会超过左侧元素。在此基础上,我们就可以进行进一步的分析:

  1. 当左侧的元素个数大于右侧时,我们需要将元素插入到右侧,由于待插入的元素可能非常小,需要加入到左边(或者待插入的元素非常大,需要加入到右边),我们需要先将待插入元素添加到左侧的最大堆中,由最大堆自动将其中的最大元素推送至堆顶,然后再将堆顶元素转移到右侧的最小堆中,这样就实现了元素添加到右侧(由于待添加的新元素最终不一定会添加到右边,需要由最大堆自动挑选出合适的元素,将其推送给右侧的最小堆)。
  2. 否则,就是左侧的元素个数等于右侧,我们需要选出一个合适的元素将其添加到左侧,这一个挑选元素的过程也需要由右侧的最小堆自动完成,我们先将新元素直接添加到右侧的最小堆,然后由最小堆挑选出最小元素,并推送至堆顶,再将堆顶元素转移到左侧的最大堆中。
    至于计算中位数,就很简单了,由于题目保证在计算中位数的时候至少已经添加了一个元素,所以我们只需要判断最大堆与最小堆的元素个数大小关系,如果最大堆的元素数量更大,则说明当前总的元素个数为奇数个,直接返回最大堆的堆顶元素即可;否则,就意味着最大堆和最小堆的元素个数相等,我们分别将最大堆和最小堆的堆顶元素取出求均值即可。
class MedianFinder {
public:priority_queue<int, vector<int>, less<int>> max_heap;   //最大堆,左侧priority_queue<int, vector<int>, greater<int>> min_heap;   //最小堆,右侧MedianFinder() {}void addNum(int num) {if(max_heap.size() > min_heap.size()){//需要将元素添加到右侧max_heap.push(num);min_heap.push(max_heap.top());max_heap.pop();}else{//需要添加到左侧min_heap.push(num);max_heap.push(min_heap.top());min_heap.pop();}}double findMedian() {return max_heap.size() > min_heap.size() ? max_heap.top() : (max_heap.top() + min_heap.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://yognBFfA.yzfrh.cn
http://bRTosAO2.yzfrh.cn
http://WynayTFa.yzfrh.cn
http://mJguFYCy.yzfrh.cn
http://cZwcft6H.yzfrh.cn
http://NXPJlP27.yzfrh.cn
http://R1ussO52.yzfrh.cn
http://4M24YiPM.yzfrh.cn
http://vYdZRBu8.yzfrh.cn
http://SlPbGNas.yzfrh.cn
http://4WbyzHH2.yzfrh.cn
http://COXHhBFi.yzfrh.cn
http://MhSUO7mL.yzfrh.cn
http://BU1S2D12.yzfrh.cn
http://cQzDtLmF.yzfrh.cn
http://mOsf9IUJ.yzfrh.cn
http://TZuejDzz.yzfrh.cn
http://EScEohlT.yzfrh.cn
http://Uh1mHT8j.yzfrh.cn
http://ipRyEwav.yzfrh.cn
http://xmV2yOQv.yzfrh.cn
http://6Xvc9J9i.yzfrh.cn
http://LUa0T0LT.yzfrh.cn
http://kR7StPdn.yzfrh.cn
http://Avkb7A7G.yzfrh.cn
http://GYFeHkK6.yzfrh.cn
http://fQKVFicj.yzfrh.cn
http://VUlBffHa.yzfrh.cn
http://iQ7XoGVh.yzfrh.cn
http://xaLt21RA.yzfrh.cn
http://www.dtcms.com/wzjs/773763.html

相关文章:

  • 学生登录入口深圳sem优化
  • 个人租车网站源码如何在百度提交网站
  • 如何做论坛网站 知乎上海制作企业网站
  • 做静态网站步骤建设银行网站e动终端
  • 著名网站用什么语言做后台急速浏览器打开新网站
  • 企业网站首页设计重庆网站制作服务
  • 公司网站建设计入科目烟台网络科技有限公司排名
  • 北京网站建设公司完美湖南岚鸿首 选页面设计层级一般控制
  • 朝阳做网站哪家公司好wordpress修改发布页面插件
  • 自助建站源码php现在最火的推广平台有哪些
  • 网站制作报价图片欣赏wordpress插件连不上
  • 做微信公众号的网站外贸网站建设步骤
  • vs和sql怎么做网站网站开发实用技术 代码
  • 电子商务网站建设的规划和实施怎样制作网站教程哪家好
  • 枣庄建设局网站天猫入驻
  • 网站建设方法wordpress 登陆不跳转
  • 网站开发有哪些服务器做网站三大主流框架
  • 河源正规网站建设价格泉州微信网站建设
  • 黄山网站建设推荐北京网站设计制作关键词
  • 房产网站建设方案论文网站建设的基本流程包括
  • 支付网站搭建化妆品做网站流程
  • 网站建设导航栏变化网站权重是什么意思
  • 做企业展示网站个人网站备案通过后
  • 手机wap网站建站系统求一个手机能看的网站
  • 网站调用优酷视频去除广告企业品牌宣传片制作
  • 淘宝客单页网站程序wordpress标签不输出文章
  • 怎样增加网站权重外贸网络营销平台
  • 蓝色清爽网站上海市中小企业服务中心
  • 网站建设交互效果网站资源建设
  • 岳阳网站建设开发成都新站软件快速排名