Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 특정 길이의 하위 배열의 최대 평균

<시간/>

문제

정수 배열 arr을 첫 번째 인수로, 숫자 num을 두 번째 인수로 취하는 JavaScript 함수를 작성해야 합니다.

우리의 함수는 최대 평균 값을 갖는 주어진 길이 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