345.数据流中的移动平均值
小于 1 分钟
345.数据流中的移动平均值
/*
* @lc app=leetcode.cn id=346 lang=typescript
*
* [346] 346.数据流中的移动平均值
*/
// @lc code=start
class MovingAverage {
private allNumbers: number[] = [];
private size: number = 0;
constructor(size: number) {
this.size = size;
}
next(val: number): number {
this.allNumbers.push(val);
if (this.allNumbers.length <= this.size) {
return (
this.allNumbers.reduce(
(accumulator, currentValue) => accumulator + currentValue,
0
) / this.allNumbers.length
);
} else {
return (
this.allNumbers
.slice(this.allNumbers.length - this.size, this.allNumbers.length)
.reduce(
(accumulator, currentValue) =>
accumulator + currentValue,
0
) / this.size
);
}
}
}
const test = new MovingAverage(5);
console.log(test.next(12009));
console.log(test.next(1965));
console.log(test.next(-940));
console.log(test.next(-8516));
console.log(test.next(-16446));
console.log(test.next(7870));
console.log(test.next(25545));
console.log(test.next(-21028));
console.log(test.next(18430));
console.log(test.next(-23464));
// @lc code=end
Loading...
