给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数。

示例:

输入:[1,12,-5,-6,50,3], k = 4
输出:12.75
解释:最大平均数 (12-5-6+50)/4 = 51/4 = 12.75
 

提示:

1 <= k <= n <= 30,000。
所给数据范围 [-10,000,10,000]。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/probl...

滑动窗口解法详细介绍:
https://leetcode-cn.com/probl...

/**
 * @param {number[]} nums
 * @param {number} k
 * @return {number}
 */
var findMaxAverage = function(nums, k) {
    let sum = 0 ,length = nums.length;
    for(let i = 0; i <k ;i ++){
        sum += nums[i]
    }

    var maxSum = sum;
    for(let i = k ; i < length; i ++){
        sum = sum - nums[i-k] +nums[i]
        maxSum = Math.max(maxSum,sum)
    }
    return maxSum/k

};

tina666
392 声望7 粉丝

别回头,别人随时有可能赶上你