LC: 346. Moving Average from Data Stream
346. Moving Average from Data
Given a stream of integers and a window size, calculate the moving average of all integers in the sliding window.
Implement the MovingAverage class:
MovingAverage(int size)Initializes the object with the size of the windowsize.double next(int val)Returns the moving average of the lastsizevalues of the stream.
Example 1:
Input
["MovingAverage", "next", "next", "next", "next"]
[[3], [1], [10], [3], [5]]
Output
[null, 1.0, 5.5, 4.66667, 6.0]
Explanation
MovingAverage movingAverage = new MovingAverage(3);
movingAverage.next(1); // return 1.0 = 1 / 1
movingAverage.next(10); // return 5.5 = (1 + 10) / 2
movingAverage.next(3); // return 4.66667 = (1 + 10 + 3) / 3
movingAverage.next(5); // return 6.0 = (10 + 3 + 5) / 3Constraints:
1 <= size <= 1000-105 <= val <= 105At most
104calls will be made tonext.
The Essence: Der Fokus dieser Frage ist:
Wie man eine Klasse in einer Programmierungssprache definieren kann.
Wie man hereinkommende Daten von Zahlen speichern kann.
Details:
Das Entwerfen einer Klasse in einer beliebigen Programmiersprache soll dem Problemlöser klar sein.
Für die Zahlen kann entweder ein Array oder eine Liste verwendet werden. Für das Speichern von Zahlen der Anzahl size kann man auch die Datenstruktur Deque benutzen.
Solution(s) and Further Explanation:
Default Code:
Last updated