特定長度子陣列的最大平均值(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

更新於: 24-4 月 -2021

101 次瀏覽

開啟您的職業生涯

完成課程即可獲得認證

開始
廣告
© . All rights reserved.