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

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

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


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

out:
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.kler.cn/news/285123.html

相关文章:

  • GD32F4xx---RTC初始化设置及闹钟方式实现秒中断讲解
  • 数据结构概念
  • 代码随想录算法训练营第 56 天 |108冗余连接 109冗余连接 II
  • 地平线—征程2(Journey 2-J2)芯片详解(28)—MIPI RX/TX+SD/SDIO/eMMC Interface Timings
  • Python Excel 操作全面总结
  • 计算物理精解【3】
  • 10分钟了解OPPO中间件容器化实践
  • ue Rotate to face BB entry转向不对
  • springboot+redis+mybatis体会布隆过滤器
  • VMware中安装 Ubuntu ,实现 Windows 和 Ubuntu 之间自由复制粘贴
  • 7个流行的开源数据治理工具
  • 51单片机.之ADC数字模拟转换
  • 如何使用vcftools提取特定的染色体
  • vim 修改文件
  • 常见协议工作原理 https ARP ICMP DHCP PING
  • 华为手机数据丢失如何恢复?
  • 具身智能(Embodied Intelligence)概述
  • 【Redis】哨兵(Sentinel)
  • 1098 Insertion or Heap Sort
  • 在Docker中使用环境变量改变SpringBoot程序配置
  • 在React中使用TypeScript和Material-UI v5时,要为单个.tsx文件创建一个局部作用域的.scss文件如何做? 另外主题如何获取呢?
  • 【Linux修行路】进程通信——共享内存
  • erlang学习:用OTP构建系统1
  • Java算法之堆排序(Heap Sort)
  • 【软考】路由器
  • C++ 移动构造函数为什么设置noexcept?
  • python网络爬虫(零)——认识网页结构
  • Linux主机网络参数的设置—IP地址的作用和类型
  • LabVIEW呼吸机测试系统开发
  • sqli-labs靶场通关攻略(五十一到五十六关)