订阅

首页

【天天新要闻】每日刷题打卡!

哔哩哔哩 2023-01-18 15:44:43


(资料图片仅供参考)

1825.求出MK平均值;每日打卡!class MKAverage {    public:    MKAverage(int m, int k) {   // 有参构造,初始化实例       this->m = m;       this->k = k;       this->sum = 0;    }        void addElement(int num) {  // 添加元素        this->q.push(num);        if(q.size() <= m) { // 如果数据流容器数目不足m个            sMid.insert(num);            this->sum  = num;            if(q.size() == m) {                while(sMin.size() < k) {    // 最小值容器需满足k个                    sMin.insert(*sMid.begin());                    sum -= *sMid.begin();                    sMid.erase(sMid.begin());                }                while(sMax.size() < k) {     // 最大值容器需满足k个                    sMax.insert(*sMid.rbegin());                    sum -= *sMid.rbegin();                    sMid.erase(prev(sMid.end()));                }            }            return;        }        if(num < *sMin.rbegin()) {  // m 已满足 多出的一个选择要放入的容器            sMin.insert(num);            sMid.insert(*sMin.rbegin());            this->sum  = *sMin.rbegin();            sMin.erase(prev(sMin.end()));        } else if(num > *sMax.begin()) {            sMax.insert(num);            sMid.insert(*sMax.begin());            this->sum  = *sMax.begin();            sMax.erase(sMax.begin());        } else {            sMid.insert(num);            this->sum  = num;        }        int temp = q.front();        q.pop();    // 移除最先加入求均值容器的元素        if (sMin.count(temp) > 0) {    // 判断最先加入的元素在哪个容器就移除这个元素            sMin.erase(sMin.find(temp));   // 移除一个            sMin.insert(*sMid.begin());     // 将中间容器的最小值放入            this->sum -= *sMid.begin();              sMid.erase(sMid.begin());   // 删除中间容器的最小值        } else if (sMax.count(temp) > 0) {            sMax.erase(sMax.find(temp));            sMax.insert(*sMid.rbegin());            this->sum -= *sMid.rbegin();            sMid.erase(prev(sMid.end()));        } else {            sMid.erase(sMid.find(temp));            this->sum -= temp;        }    }        int calculateMKAverage() {        if(q.size() < m) {            return -1;        }        return sum / (m - 2*k);    }public:    int m,k;    queue q;    // 数据流容器    multiset sMin,sMid,sMax;   // 最小,中间,最大容器    long long sum;  // 和};

相关稿件

最近更新

【天天新要闻】每日刷题打卡!

首钢股份:原燃料涉及物料品种较多,预计2023年国内大宗原燃料价格维持相对高位

全球今热点:权威快报|双顺差!我国外汇市场供求基本平衡

天天日报丨“债务上限”意外效果:联储缩表事倍功半

鞍重股份:公司与临武县政府签署的投资协议,尚需经2022年12月26日召开的股东大会审议后生效

每日快报!福晶科技:2022年度具体经营情况将在年报中披露,届时敬请关注,祝您新春快乐,阖家幸福!

每日热门:四川九洲:公司是C919大飞机的一级供应商,承担大飞机客舱广播内话子系统任务

货币政策收紧是什么?货币政策与财政政策的区别

全额拨款是什么意思?全额拨款和差额拨款区别

提取备用金用什么凭证?备用金上征信吗?

征信白户是什么?征信白户可以贷款买房吗?

银行批款是什么意思?银行批款一般多久放款?

账户已加挂是什么意思?账户已加挂怎么取消?

理财挂单是什么意思?理财挂单和购买有啥区别?

什么是再贴现?再贴现和转贴现区别

商业票据是什么意思?商业票据和商业汇票的区别

每日消息!日元突发跳水!日本央行按兵不动

短讯!王健林将万达酒店发展65.04%股权抵押给淡马锡进行融资

抵税买车是什么意思?公司抵税车多久过户不用补税?

CRS存款是什么意思?crs存款和ATM存款区别

加息货币贬值还是升值?加息好处与坏处有什么?

全球快资讯丨央行菏泽市中心支行连开罚单,山东2家农商行共计被罚80万

ST森源:公司目前的业务主要包括输变电业务和环卫服务业务

订单排到2028年!中国LNG船新接订单量同比增长超4倍

焦点热讯:网易深夜炮轰暴雪

三体宇宙多股东被执行超5000万

日本央行将基准利率维持在历史低点-0.1%

格力博启动网上申购 行业竞争格局更加清晰

全球快看:国电电力:因应收账款、其他应收款收回,冲减坏账准备

2023合肥城泊春节免费停车详情(时间+停车场)