博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode Moving Average from Data Stream
阅读量:5236 次
发布时间:2019-06-14

本文共 1238 字,大约阅读时间需要 4 分钟。

原题链接在这里:

题目:

Given a stream of integers and a window size, calculate the moving average of all integers in the sliding window.

For example,

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

题解:

维护一个queue, 当queue的size已经等于size时若是继续加新的val就需要poll值.

Time Complexity: MovingAverage(size) O(1), next(val) O(1).

Space: O(size) 需要维护queue

AC Java:

1 public class MovingAverage { 2      3     private LinkedList
que; 4 private int size; 5 private int sum; 6 7 /** Initialize your data structure here. */ 8 public MovingAverage(int size) { 9 this.que = new LinkedList
();10 this.size = size;11 this.sum = 0;12 }13 14 public double next(int val) {15 if(que.size() == this.size){16 this.sum -= que.poll();17 }18 que.offer(val);19 sum += val;20 return (double)this.sum/que.size();21 }22 }23 24 /**25 * Your MovingAverage object will be instantiated and called as such:26 * MovingAverage obj = new MovingAverage(size);27 * double param_1 = obj.next(val);28 */

 

转载于:https://www.cnblogs.com/Dylan-Java-NYC/p/6183642.html

你可能感兴趣的文章
NetworkInterface的使用
查看>>
JQuery Ajax()方法
查看>>
元素自动居中显示
查看>>
JDBC 时间处理
查看>>
hadopp 环境搭建
查看>>
【2018】听懂你能看懂的句子
查看>>
mybatis源代码分析:深入了解mybatis延迟加载机制
查看>>
Flask三剑客
查看>>
Hibernate-缓存
查看>>
【BZOJ4516】生成魔咒(后缀自动机)
查看>>
【BZOJ3052】【UOJ#58】【WC2013】糖果公园(树上莫队)
查看>>
荷兰国旗问题
查看>>
Process 启动参数问题
查看>>
提高PHP性能的10条建议
查看>>
我,不会吵,不会闹,心痛了用沉默代替
查看>>
svn“Previous operation has not finished; run 'cleanup' if it was interrupted“报错的解决方法...
查看>>
项目经理面试中可能遇到的问题(持续更新)
查看>>
【转】总结前端面试过程中最容易出现的问题
查看>>
Java- 简单了解线程 生产者与消费者问题(三)
查看>>
centos rancher 通过本机 docker images 新增container
查看>>