From 5885633735c2fa35e6c422cfce7eb0fce37f8ab6 Mon Sep 17 00:00:00 2001 From: huangge1199 Date: Fri, 2 Jul 2021 10:30:45 +0800 Subject: [PATCH] =?UTF-8?q?LeetBook--=E9=98=9F=E5=88=97&=E6=A0=88--?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=B5=81=E4=B8=AD=E7=9A=84=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E5=B9=B3=E5=9D=87=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../leet/book/queueStack/MovingAverage.java | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/main/java/leet/book/queueStack/MovingAverage.java diff --git a/src/main/java/leet/book/queueStack/MovingAverage.java b/src/main/java/leet/book/queueStack/MovingAverage.java new file mode 100644 index 0000000..e5b4ddd --- /dev/null +++ b/src/main/java/leet/book/queueStack/MovingAverage.java @@ -0,0 +1,45 @@ +package leet.book.queueStack; + +import java.util.LinkedList; +import java.util.Queue; + +/** + * Created with IntelliJ IDEA. + * + * @author: 轩辕龙儿 + * @date: 2021/7/2 8:44 + * @Description: No Description + */ +public class MovingAverage { + Queue queue; + int size; + double sum = 0.0; + + /** + * Initialize your data structure here. + */ + public MovingAverage(int size) { + queue = new LinkedList<>(); + this.size = size; + } + + public double next(int val) { + if (queue.size() >= size) { + sum += 1.0 * (val - queue.poll()) / size; + } else { + if (queue.isEmpty()) { + sum += val; + } else { + sum = (sum * queue.size() + val) / (queue.size() + 1); + } + } + queue.offer(val); + return sum; + } +} + +/** + * Your MovingAverage object will be instantiated and called as such: + * MovingAverage obj = new MovingAverage(size); + * double param_1 = obj.next(val); + */ \ No newline at end of file