# 643. 子数组最大平均数 I

# 题目

给定 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]

# 题解

# 滑动窗口

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

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

  return maxSum / k;
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

时间复杂度:O(n) 空间复杂度:O(1)