滑动窗口元素的平均值 ← STL : deque

devtools/2024/10/21 19:40:36/

【题目描述】
给定一个序列,使用 deque 维护一个大小为 k 的窗口,计算每个窗口中所有元素的平均值。


【算法分析】
● STL deque
https://cplusplus.com/reference/deque/
● 在 C++ 标准模板库(STL)中,dequedouble-ended queue,双端队列)是一个非常重要的容器,它支持在序列的两端进行快速插入和删除操作。所以,对于需要在两端进行修改的数据结构,例如滑动窗口deque是一个理想的选择。
● 本例使用 STL deque
push_back() 函数创建 dequehttps://cplusplus.com/reference/deque/deque/push_back/

【算法代码】

#include <bits/stdc++.h>
using namespace std;void sliding_window_avg(deque<int> deq, int k) {double sum=0;for(int i=0; i<deq.size(); i++) {sum+=deq[i];if(i>=k) sum-=deq[i-k];if(i>=k-1) {cout<<"Average of "<<k<<" elements: "<<sum/k<<endl;}}
}int main() {deque<int> deq;int n,x,k;cin>>n;while(n--) {cin>>x;deq.push_back(x);}cin>>k;sliding_window_avg(deq,k);return 0;
}/*
in:
9
2 8 1 6 3 5 7 4 9
5out:
Average of 5 elements: 4
Average of 5 elements: 4.6
Average of 5 elements: 4.4
Average of 5 elements: 5
Average of 5 elements: 5.6
*/



【参考文献】
https://cplusplus.com/reference/deque/deque/push_back/
https://mp.weixin.qq.com/s/hNb_V3ffphCr_8Z30NPryQ



 


http://www.ppmy.cn/devtools/104180.html

相关文章

如何使用Hive构建高校考试分析系统:大数据技术在教育领域的应用

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

【搜索引擎】ElasticSearch 7.x版本

1 Elasticsearch概述 1.1 Elasticsearch是什么 1.2 全文搜索引擎 1.3 Elasticsearch And Solr 1.4 Elasticsearch Or Solr 1.5 Elasticsearch应用案例 2 Elassticsearch入门 2.1 Elasticsearch 安装 2.1.1 下载软件 2.1.2 安装软件 2.1.3 问题解决 2.2 Elasticsearch基本操…

2024最新VMware17安装Windows10详细记录

本次将带来虚拟机VMware Workstation 17 pro安装Win10的教学&#xff0c;可用于各种软件测试&#xff0c;这里虽然只是示范了win10安装教学&#xff0c;实际上可以安装很多系统&#xff0c;步骤都差不多&#xff1b; 下载 一、下载虚拟机软件 下载方式一&#xff1a;官网下载…

【电力系统】使用电力系统稳定器 (PSS) 和静态 VAR 补偿器 (SVC) 提高瞬态稳定性

摘要 电力系统在面对故障和扰动时&#xff0c;其瞬态稳定性是确保系统安全运行的关键因素。本文探讨了通过使用电力系统稳定器&#xff08;PSS&#xff09;和静态VAR补偿器&#xff08;SVC&#xff09;来提高电力系统瞬态稳定性的策略。通过仿真分析&#xff0c;证明了PSS和SV…

项目技巧二

目录 java中Date和mysql数据库datetime数据类型 注意&#xff1a; 在yml文件中配置成员变量的值 1.写一个yml文件 2.写一个与yml相互映射的类来读取yml的属性信息 3.在其他子模块的配置类中开启此类&#xff0c;读取yml文件的内容信息 4.直接依赖注入&#xff08;因为已…

数值积分:常用数值积分方法

数值分析(也称计算方法)主要包括数值逼近、数值线性代数、微分方程数值求解等内容。在前面的博文中&#xff0c;已对数值线性代数做了部分介绍&#xff1b;至于微分方程数值求解&#xff0c;可以结合计算流体力学、计算固体力学、计算电磁学等进行研习&#xff0c;笔者前面也有…

网络路由介绍,route指令,查询路由表的过程,默认路由

目录 路由 本地主机的路由功能 引入 route指令 查询路由表的过程 介绍 示例 默认路由 注意 路由 本地主机的路由功能 引入 报文经过多个路由器转发至公网,再从公网定位后转发至私网,最终到达目标主机 而报文肯定是要先经过本地主机的 所以本地主机也具有路由功能,也…

数据结构与算法——Java实现 3.二分查找——Java版

放下不切实际的幻想&#xff0c;放下无法更改的过去&#xff0c;行云流水&#xff0c;任其行之 —— 24.8.31 一、二分查找——Java基础版 Java中的API——Arrays.binarySearch(数组&#xff0c;目标值) 返回的结果是插入点的位置 若在目标数组中找不到元素&#xff0c;则返…