
问题描述
解法
Python 实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
class : def __init__(self, size): """ Initialize your data structure here. :type size: int """ self._size = size self._array = [] self._sum = 0 def next(self, val): """ :type val: int :rtype: float """ self._sum += val self._array.append(val) if len(self._array) > self._size: self._sum -= self._array.pop(0) return self._sum / len(self._array)
|
Java 实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
class { private int size; private ArrayList<Integer> array; private int sum; public (int size) { this.size = size; this.array = new ArrayList<>(); this.sum = 0; } public double next(int val) { this.sum += val; this.array.add(val); if(this.array.size() > this.size){ this.sum -= this.array.remove(0); } return (1.0 * this.sum) / this.array.size(); } } * Your MovingAverage object will be instantiated and called as such: * MovingAverage obj = new MovingAverage(size); * double param_1 = obj.next(val); */
|
链接
346. Moving Average from Data Stream
(English version) Algorithm Notes: Leetcode#346 Moving Average from Data Stream
近期评论