【剑指offer】 子数组最大平均数 I

  |   0 评论   |   0 浏览

题目

给你一个由 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