Moving Average of An Input Stream

2024-01-04 12:32
文章标签 input stream moving average

本文主要是介绍Moving Average of An Input Stream,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Moving Average of An Input Stream. The size of a window is n
For example:
input = [1, 1, 2, 3, 3, 4, 4, 4, 5.....], n = 3;
moving average = [1, 1, 1.33, 2, 2.67, 3.33, 3.67, 4, 4.33...]

public void movingAverage(Stream input, int windowSize) 


最下面的做法不是动态的,改为如下,同时也得改之前的另一道题。

public class MovingAverage {Queue<Integer> list;int size = 0;int sum = 0;/** Initialize your data structure here. */public MovingAverage(int size) {list = new LinkedList<>();this.size = size;}public double next(int val) {double result = 0.0;if (list.size() < size) {sum = sum + val;list.offer(val);result = (double)sum / list.size();} else {int deletedNum = list.poll();sum = sum - deletedNum;sum = sum + val;result = (double)sum / size;list.offer(val);}return result;}
}/*** Your MovingAverage object will be instantiated and called as such:* MovingAverage obj = new MovingAverage(size);* double param_1 = obj.next(val);*/


import java.text.DecimalFormat;public class MovingAverage {private static DecimalFormat df2 = new DecimalFormat(".##");public static void main(String[] args) {// TODO Auto-generated method stubint[] array = {1, 1, 2, 3, 3, 4, 4, 4, 5};double[] arrays = movingAverage(array, 3);for (double d: arrays) {
//			System.out.format("%.2f",d);
//			System.out.println("");System.out.println(df2.format(d));}}private static double[] movingAverage(int[] array, int n) {double[] res = new double[array.length];int sum = 0;for (int i = 0; i < array.length; i++) {if (i < n) {sum = sum + array[i];res[i] = (double)sum/(i + 1);} else {sum = sum - array[i - n];sum = sum + array[i];res[i] = (double)sum/n;}}return res;}
}



这篇关于Moving Average of An Input Stream的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/569350

相关文章

java Stream操作转换方法

《javaStream操作转换方法》文章总结了Java8中流(Stream)API的多种常用方法,包括创建流、过滤、遍历、分组、排序、去重、查找、匹配、转换、归约、打印日志、最大最小值、统计、连接、... 目录流创建1、list 转 map2、filter()过滤3、foreach遍历4、groupingB

JavaSE(十三)——函数式编程(Lambda表达式、方法引用、Stream流)

函数式编程 函数式编程 是 Java 8 引入的一个重要特性,它允许开发者以函数作为一等公民(first-class citizens)的方式编程,即函数可以作为参数传递给其他函数,也可以作为返回值。 这极大地提高了代码的可读性、可维护性和复用性。函数式编程的核心概念包括高阶函数、Lambda 表达式、函数式接口、流(Streams)和 Optional 类等。 函数式编程的核心是Lambda

Java stream使用与执行原理

stream简介 Stream: A sequence of elements supporting sequential and parallel aggregate operations stream为sequential即单线程串行操作,parallelStream支持并行操作,本文只讨论sequential的stream。 stream常用操作 @Datastatic

HumanNeRF:Free-viewpoint Rendering of Moving People from Monocular Video 翻译

HumanNeRF:单目视频中运动人物的自由视点绘制 引言。我们介绍了一种自由视点渲染方法- HumanNeRF -它适用于一个给定的单眼视频ofa人类执行复杂的身体运动,例如,从YouTube的视频。我们的方法可以在任何帧暂停视频,并从任意新的摄像机视点或甚至针对该特定帧和身体姿势的完整360度摄像机路径渲染主体。这项任务特别具有挑战性,因为它需要合成身体的照片级真实感细节,如从输入视频中可能

Java8中的Stream,让集合操作酸爽起来

简介 java8也出来好久了,接口默认方法,lambda表达式,函数式接口,Date API等特性还是有必要去了解一下。比如在项目中经常用到集合,遍历集合可以试下lambda表达式,经常还要对集合进行过滤和排序,Stream就派上用场了。用习惯了,不得不说真的很好用。 Stream作为java8的新特性,基于lambda表达式,是对集合对象功能的增强,它专注于对集合对象进行各种高效、便利的聚合

Java中各种数据结构如何使用stream流

1. List 假设你有一个List<String>,你可以使用Stream来过滤、映射、排序等。 List<String> list = Arrays.asList("apple", "banana", "cherry", "date"); // 过滤操作 List<String> filteredList = list.stream() .filter(s -> s.startsW

【Node】Buffer 与 Stream

node 为什么会出现 Buffer 这个模块 在最初的时候,JavaScript 只运行在浏览器端, 对于处理 Unicode 编码的字符串很容易,但是对于处理二进制以及非 Unicode 编码的数据便无能为力。 不过对于 Server 端操作来说 网络I/O 以及 文件I/O 的处理是必须的,所以 Node 中便提供了 Buffer 类处理二进制的数据。 二进制缓冲区 Buffer

Stream插件相关的用法

文章目录 1. 概念介绍2. 使用方法2.1 StreamController2.2 StreamBuilder 3. 示例代码 我们在上一章回中介绍了管理Stream事件流相关的内容,本章回中将介绍如何使用Stream事件流输入输出数据 。闲话休提,言归正传,让我们一起Talk Flutter吧。 1. 概念介绍 我们在上一章回中看到了Stream中的事件流可以自带数据

【Python百日进阶-Web开发-音频】Day705 - 音频加载 librosa.load / librosa.stream

文章目录 一、音频加载1.1 librosa.load1.1.1 语法与参数1.1.2 例子1.1.2.1 下载并加载文件1.1.2.2 加载并重采样1.1.2.3 加载文件,从第15秒开始,加载5秒- 1.2 librosa.stream1.2.1 语法与参数1.2.2 例子1.2.2.1 一次对 256 帧的块应用短期傅里叶变换。1.2.2.2 使用较短的帧和不重叠的窗口计算流上的 m

【JAVA入门】Day34 - Stream流

【JAVA入门】Day34 - Stream流 文章目录 【JAVA入门】Day34 - Stream流一、Stream 流的作用和使用步骤1.Stream流的创建,数据的添加2. Stream流的中间方法3. Stream流的终结方法         Stream 流有什么作用?我们看一个例子: 【练习】需求:按照下面的要求完成集合的创建和遍历。 ①把所有以“张”开头