June 13th 2023

Maximum Average Subarray — Typescript

Problem Description permalink

You are given an integer array nums consisting of n elements, and an integer k.

Find a contiguous subarray whose length is equal to k that has the maximum average value and return this value. Any answer with a calculation error less than 10-5 will be accepted.

Example 1:

Input: nums = [1,12,-5,-6,50,3], k = 4
Output: 12.75000
Explanation: Maximum average is (12 - 5 - 6 + 50) / 4 = 51 / 4 = 12.75
Example 2:

Input: nums = [5], k = 1
Output: 5.00000

Solution permalink

function expect(description: string, test: boolean) {
if (test) {
console.log(`${description}`)
} else {
console.log(`${description}`)
}
}

function findMaxAverage(nums: number[], k: number): number {
var maximum: number | null = null

for (var i = 0; i <= nums.length - k; i++) {
const sliceValue = nums.slice(i, i + k)
.reduce((total, a) => total + a, 0)

if (!maximum || sliceValue > maximum) {
maximum = sliceValue
}
}

return (maximum || 0) / k
};

expect("nums = [1,12,-5,-6,50,3], k = 4 is 12.75000", findMaxAverage([1, 12, -5, -6, 50, 3], 4) == 12.75)

Discussion permalink

None today.