643. Maximum Average Subarray I
题目简介
/**
* @param {number[]} nums
* @param {number} k
* @return {number}
*/
题目给我们一个数字数组 nums 以及一个数字 k
要求我们在数组中找到长度为 k 的连续子数组使其平均值最大
最后返回平均值
解题思路
这题我们需要使用滑动窗口的思路来求解
我们构建一个长度为 k 的滑动窗口,在每次滑动的时候记录当前窗口元素之和
然后我们用一个变量 max 来记录和最大的窗口是多少
最后我们用 max / k 就能获得平均值了
Javascript
/**
* @param {number[]} nums
* @param {number} k
* @return {number}
*/
var findMaxAverage = function (nums, k) {
let max = 0
let left = 0
let right = 0
while (right < k) {
max += nums[right]
right++
}
let prev = max
while(right < nums.length) {
const value = prev + nums[right] - nums[left]
max = Math.max(value, max)
prev = value
right++
left++
}
return max / k
};