给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数。
输入: [1,12,-5,-6,50,3], k = 4
输出: 12.75
解释: 最大平均数 (12-5-6+50)/4 = 51/4 = 12.75
复制代码
==========分割线==========
滑窗法
var findMaxAverage = function(nums, k) {
var maxSum = nums.slice(0, k).reduce((x, y){return x + y}, 0);
var currentSum = maxSum;
var numsLen = nums.length;
for(var i = 0; i < numsLen - k; i++) {
currentSum = currentSum + nums[i + k] - nums[i];// 循环一猜,向后推进一次
maxSum = Math.max(maxSum, currentSum);
}
return maxSum / k
};复制代码