#1
Sliding Window (fixed size)
Sliding Window (fixed)Given an integer array and a number k, find the contiguous subarray of length k with the maximum average, and return that average.
function findMaxAverage(nums: number[], k: number): number {
let windowSum = 0;
for (let i = 0; i < k; i++) windowSum += nums[i];
let best = windowSum;
for (let i = k; i < nums.length; i++) {
windowSum += nums[i] - nums[i - k]; // add entering, drop leaving
best = Math.max(best, windowSum);
}
return best / k;
}def find_max_average(nums, k)
window_sum = nums.first(k).sum
best = window_sum
(k...nums.length).each do |i|
window_sum += nums[i] - nums[i - k] # add entering, drop leaving
best = [best, window_sum].max
end
best.to_f / k
end