345.数据流中的移动平均值

时游小于 1 分钟LeetCode

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

上次编辑于:
贡献者: 15327360835
Loading...