给定一个整数数据流和一个窗口大小,根据该滑动窗口的大小,计算其所有整数的移动平均值。

示例:

MovingAverage m = new MovingAverage(3);
m.next(1) = 1
m.next(10) = (1 + 10) / 2
m.next(3) = (1 + 10 + 3) / 3
m.next(5) = (10 + 3 + 5) / 3

思路:一个队列记录数字,用一个变量记录窗口和即可,每次更新窗口和。

class MovingAverage {int size//窗口大小int windowSum = 0//窗口和int count = 0;//添加数字的次数Deque queue = new ArrayDeque<Integer>();public MovingAverage(int size) {this.size = size;}public double next(int val) {++count;// calculate the new sum by shifting the windowqueue.add(val);//看有没有过期的数字(最左边)int tail = count > size ? (int)queue.poll() : 0;//更新窗口和windowSum = windowSum - tail + val;return windowSum * 1.0 / Math.min(size, count);}
}
/*** Your MovingAverage object will be instantiated and called as such:* MovingAverage obj = new MovingAverage(size);* double param_1 = obj.next(val);*/

leetcode346. 数据流中的移动平均值相关推荐

  1. python 数据流中的移动平均值_剑指Offer-41-数据流中的中位数

    题目 题目描述 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值.如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值 ...

  2. LeetCode 346. 数据流中的移动平均值(队列)

    文章目录 1. 题目 2. 解题 1. 题目 给定一个整数数据流和一个窗口大小,根据该滑动窗口的大小,计算其所有整数的移动平均值. 示例: MovingAverage m = new MovingAv ...

  3. 剑指offer:面试题41. 数据流中的中位数

    题目:数据流中的中位数 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值.如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数 ...

  4. ajax 文件数据流,Ajax如何读取数据流中的xml文件?

    Ajax如何读取数据流中的xml文件? 这是我的源代码,请大家帮忙看看,我读到的怎么都是空值.是不是方法错了? var xmlHttp; function createXMLHttpRequest() ...

  5. 数据流中的第k大元素的golang实现

    设计一个找到数据流中第K大元素的类(class).注意是排序后的第K大元素,不是第K个不同的元素. 你的 KthLargest 类需要一个同时接收整数 k 和整数数组nums 的构造器,它包含数据流中 ...

  6. Leetcode295 数据流中的中位数-最小堆和最大堆

    题目 中位数是有序列表中间的数.如果列表长度是偶数,中位数则是中间两个数的平均值. 例如,[2,3,4] 的中位数是 3:[2,3] 的中位数是 (2 + 3) / 2 = 2.5 设计一个支持以下两 ...

  7. leetcode 703. 数据流中的第K大元素 最小堆解法 c语言

    如题: 设计一个找到数据流中第K大元素的类(class).注意是排序后的第K大元素,不是第K个不同的元素. 你的 KthLargest 类需要一个同时接收整数 k 和整数数组nums 的构造器,它包含 ...

  8. 从C语言的角度重构数据结构系列(七)-数据结构堆知识求解数据流中的第K大元素

    前言 在这里给自己打个广告,需要的小伙伴请自行订阅. python快速学习实战应用系列课程 https://blog.csdn.net/wenyusuran/category_2239261.html ...

  9. 数据流中的中位数,我轻敌了

    前言 大家好,我是bigsai.最近轻敌了一个高频问题,分享给大家. 最近面试时候遇到一个非常有意思的hard题,面试官没让写代码让说思路,但放在正常应届生招聘那可能就要手撕了,在剑指offer的第4 ...

最新文章

  1. 【HeadFirst 设计模式学习笔记】13 MVC分析
  2. SNMP功能开发简介 四 net-snmp动态监听自定义端口
  3. Vue.js Prop
  4. NSDictionary所有API的学习。
  5. OnLineML:时序数据挖掘
  6. MySQL-5.5.33主从复制
  7. mvp内粗泄露问题_如何在一小时内启动MVP服务器
  8. mysql数据库搜索引擎要先进入_Mysql搜索引擎都有哪些区别
  9. 如何有效提高你的沟通技巧
  10. 《Unix网络编程(第3版)》代码编译的一些问题
  11. Kmalloc申请内存源码分析
  12. c246芯片组服务器主板,支持Xeon E-2100系列:ASRock 华擎 发布 C246M WS 主板
  13. 开源纯C#工控网关+组态软件
  14. Windows 7 旗舰版 64位 (纯净版)
  15. 可怕的KCFErrordomainCFNetWork 303
  16. 目标检测算法之AAAI2019 Oral论文GHM Loss
  17. 查看、修改oracle字符集,查看oracle版本
  18. IDEA编译代码报错,找不到符号:找不到符号包
  19. 48亿卖给苏宁!又一全球巨头败走中国
  20. Centos7安装go1.14.4超级详细(两种安装方式)

热门文章

  1. linux中python安装_linux环境下的python安装过程图解(含setuptools)
  2. kafka创建topic命令_0748-5.14.4-Kafka的扩容和缩容
  3. 嵌入式Linux操作系统的版本查询
  4. android 主线程调用,Android 主线程和线程之间相互发送消息
  5. python 串口助手 简书_python用pyserial读取串口问题解决
  6. Spring笔记——数据源配置
  7. python任意代码都可以缩进去_我发现了个 Python 黑魔法,执行任意代码都会自动念上一段 『平安经』...
  8. 【转】VTK修炼之道2_VTK体系结构1
  9. 【转】ABP源码分析四十七:ABP中的异常处理
  10. 第一节:框架前期准备篇之Log4Net日志详解