June 13th 2023
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.