滑动窗口

方法一滑动窗口

解题思路

这是一个比较典型的滑动窗口问题。
可以维护一个大小位k的滑动窗口,依次遍历,每次去掉末尾的元素添加当前遍历的元素

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

参考代码

  1. class Solution:
  2. def findMaxAverage(self, nums: List[int], k: int) -> float:
  3. total = 0
  4. for i in range(0,k):
  5. total += nums[i]
  6. max_total = total
  7. for i in range(k, len(nums)):
  8. total = total + nums[i] - nums[i - k]
  9. max_total = max(total,max_total)
  10. return max_total / k

复杂度分析

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