Moving average за последние 5 минут

MediumPython
10:00
Лучше работает на десктопе
PythonOOPDequeSliding Windowreal-interview
Реальный собес00:34:02-01:04:262026-02-20 18-04-44.movСтраница собеса

Реализуйте класс MovingAvg, который хранит значения метрики и возвращает среднее за последние 5 минут.

Метод now() уже реализован внешней системой и возвращает текущее время в секундах. В решении можно вызывать self.now(), но писать реальную работу с часами не нужно.

Интерфейс

class MovingAvg:
    def record(self, value: int) -> None:
        ...

def mean(self) -> float:
...

def now(self) -> int:
...

record(value) записывает значение в текущий момент времени. mean() возвращает среднее всех записанных значений за последние 300 секунд. Если актуальных значений нет, верните 0.0.

В тренажере тесты вызывают helper moving_average_results(events), который уже есть в starter code и подменяет now() тестовым временем.

Примеры

Пример 1

Вход:
self = [["record",0,10],["record",10,20],["mean",10]]
Выход:[15]

Среднее двух свежих значений

Пример 2

Вход:
self = [["record",0,10],["record",301,20],["mean",301]]
Выход:[20]

Старое значение выпало из окна

Пример 3

Вход:
self = [["mean",100]]
Выход:[0]

Нет актуальных значений

Консоль
Нажмите Run или Ctrl+Enter для запуска