MUYANG GUO / INDEX

LeetCode

LeetCode 346 Moving Average From Data Stream - Easy

346. Moving Average from Data Stream

·1 min read·#LeetCode#Easy#Python

346. Moving Average From Data Stream — Easy

Open on LeetCode

Problem

  1. 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.

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

Solution

### queue :
 
class MovingAverage:
    
    def __init__(self, size):
        """
        Initialize your data structure here.
        """
        self.sum = 0
        self.max_size = size
        self.queue = collections.deque()
        
 
    def next(self, val):
        self.sum += val
        self.queue.append(val)
        
        if len(self.queue) > self.max_size:
            self.sum = self.sum - self.queue.popleft()
        
        return self.sum / len(self.queue)
 
# Your MovingAverage object will be instantiated and called as such:
# obj = MovingAverage(size)
# param_1 = obj.next(val)

Comments