Maximum Average Subarray I

EasyArraySliding Window

Solution

import { range } from '@algorithm/lib';
 
export function findMaxAverage(nums: number[], k: number): number {
  const n = nums.length;
 
  let totalValue = nums.slice(0, k).reduce((acc, num) => acc + num, 0);
  let maxAverage = totalValue / k;
  for (const i of range(n - k)) {
    totalValue += nums[i + k] - nums[i];
    maxAverage = Math.max(totalValue / k, maxAverage);
  }
 
  return maxAverage;
}