class MovingAverage:
'''
滑动窗口的精髓在于使用了队列,然后根据设定容量动态的维护队列成员
另一方面是每次实时计算总和,然后返回
'''
def __init__(self, size: int):
self.size = size #滑动窗口的值
self.sum = 0 #滑动和,好处是不用每次都计算一边
self.q = deque() #储存滑动的内容
def next(self, val: int) -> float:
if len(self.q) == self.size: #队列满了,拿出去一个,最左侧那个
self.sum -= self.q.popleft()
self.sum += val #然后在添加就行
self.q.append(val)
return self.sum / len(self.q)