首页 > 代码库 > Moving Average from Data Stream
Moving Average from Data Stream
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) = 1
m.next(10) = (1 + 10) / 2
m.next(3) = (1 + 10 + 3) / 3
m.next(5) = (10 + 3 + 5) / 3
分析:
利用Queue先进先出的特点即可。
1 public class MovingAverage { 2 Queue<Integer> q; 3 double sum = 0; 4 int size; 5 6 /** Initialize your data structure here. */ 7 public MovingAverage(int s) { 8 q = new LinkedList(); 9 size = s; 10 } 11 12 public double next(int val) { 13 if (q.size() == size) { 14 sum = sum - q.poll(); 15 } 16 q.offer(val); 17 sum += val; 18 return sum / q.size(); 19 } 20 }
Moving Average from Data Stream
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。