Oliver's Blog
Search
⌃K
Oliver's Blog
Search
⌃K
Welcome!
Projects
Course Enrollment App
Fitness Tracker App
Voice Shopping Assistant
Graphics Town
Algo
Binary Search
Linked List
Recursion Basics
Binary Tree
Sorting
Two Pointers
Queue & Stack
Implement Queue by Interface
Implement Stack
Implement Queue by Two Stacks
Implement Stack by Two Queues
Binary Tree Level Order Traversal
Valid Parentheses
Min Stack
Largest Rectangle in Histogram
Evaluate Reverse Polish Notation
Implement Queue by Linked List II
Basic Calculator II
Moving Average from Data Stream
Reveal Cards In Increasing Order
Longest Valid Parentheses
Hash Table
Heap & Priority Queue
BFS
Array
String
Math
Dynamic Programming
LeetCode vs. LintCode Table
React Notes
Optimizing Performance in React
Golang Notes
Basics
Official Tutorial Notes
Miscellaneous
A GMAT Reading
Traveling to China During a Global Pandemic
Powered By GitBook

Moving Average from Data Stream

ID: 642; easy
LintCode 炼码

Solution 1 (Java)

public class MovingAverage {
​
Queue<Integer> q;
double sum;
int size;
​
/*
* @param size: An integer
*/
public MovingAverage(int size) {
q = new ArrayDeque<>();
sum = 0;
this.size = size;
}
​
/*
* @param val: An integer
* @return:
*/
public double next(int val) {
sum += val;
if (q.size() == size) {
int pollVal = q.poll();
sum -= pollVal;
}
q.offer(val);
return sum / q.size();
}
}
Previous
Basic Calculator II
Next
Reveal Cards In Increasing Order
Last modified 1yr ago
Copy link