【剑指offer】 子数组最大平均数 I
题目
给你一个由 n 个元素组成的整数数组 nums 和一个整数 k 。
请你找出平均数最大且 长度为 k 的连续子数组,并输出该最大平均数。
任何误差小于 10-5 的答案都将被视为正确答案。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximum-average-subarray-i
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
我的答案
/**
* @param {number[]} nums
* @param {number} k
* @return {number}
*/
var findMaxAverage = function (nums, k) {
var average = 0;
for (var i = 0; i < k; i++) {
average += nums[i];
}
average /= k;
let maxAverage = average;
for (var i = 0; i < (nums.length - k); i++) {
average += ((nums[i + k] - nums[i]) / k);
maxAverage=Math.max(average,maxAverage);
}
return maxAverage;
};
又是一个动态规划,记录当前最好值。
只有第一次平均值需要遍历计算,之后窗口移动,只需要计算差值。
标题:【剑指offer】 子数组最大平均数 I
作者:limanting
地址:https://blog.manxiaozhi.com/articles/2021/09/25/1632561039418.html