leetcode

简单数组滑动窗口

方法1 滑动窗口

  1. var findMaxAverage = function (nums, k) {
  2. let sum = 0, len = nums.length;
  3. for (let i = 0; i < k; i++) {
  4. sum += nums[i];
  5. }
  6. let maxSum = sum;
  7. for (let i = k; i < len; i++) {
  8. sum -= nums[i - k];
  9. sum += nums[i];
  10. maxSum = Math.max(sum, maxSum);
  11. }
  12. return maxSum / k;
  13. };

image.png

643. 子数组最大平均数 I - 图2

⚠️ 两个 for 循环,解决 **maxSum** 的初值问题。
窗口初始化的操作很重要
在窗口初始化时,可以记录初始的最值
如果提前定义好最值,在初始化的时候无论赋什么值都不合适。