JavaScript 中特定长度的子数组的最大平均值

问题

我们需要编写一个 JavaScript 函数,它接受一个整数数组 arr 作为第一个参数,一个数字 num 作为第二个参数。

我们的函数应该找到具有最大平均值的给定长度 num 的连续子数组。我们需要输出最大的平均值。

例如,如果函数的输入是

输入

const arr = [1, 12, -5, -6, 50, 3];
const num = 4;

输出

const output = 12.75;

输出说明

因为想要的子数组是 [12, -5, -6, 50]

示例

以下是代码 -

const arr = [1, 12, -5, -6, 50, 3];
const num = 4;
const maxAverage = (arr = [], num) => {
   let sum = arr.slice(0, num).reduce((acc, v) => acc + v, 0)
   let max = sum
   for (let i = 1; i <=arr.length- num; i++) {
      sum = sum + arr[i + num - 1] - arr[i - 1]
      max = Math.max(max, sum)
   }
   return max / num
}
console.log(maxAverage(arr, num));
输出结果
12.75