滑动平均_滑动窗口问题最简单的教程

本文通过一个例子介绍滑动窗口的概念,探讨暴力解法的时间复杂度问题,并提出滑动窗口算法来优化,降低时间复杂度。文章详细阐述了滑动窗口的思想,并给出了具体实现。欢迎阅读更多滑动窗口相关文章。
摘要由CSDN通过智能技术生成

02f7a747575a2ac803f47b4ed68e880e.png
滑动窗口相关问题在面试中很常见,本文目的,就是让你用最节约脑细胞的方式,掌握这个算法技巧。这是个系列教程,如果觉得好,就请关注一波吧。

1 举个栗子

下面这个问题,就是典型的滑动窗口要解决的问题。

请找出一个数组中所有大小为K的连续子数组的平均值

看起来,这句话有点绕,没关系,咱们用个具体的小例子来说明一下:

Array: [1, 3, 2, 6, -1, 4, 1, 8, 2], K=5

这个例子,我们需要找出大小为5的所有连续子数组的平均值,我们可以这样算:

  • 对于前5个元素的子数组 (下标 0-4), 平均值是: (1+3+2+6-1)/5 => 2.2
  • 第二个5个元素的子数组的平均值 (下标 1-5) 是: (3+2+6-1+4)/5 => 2.8
  • 第三个5个元素的子数组 (下标 2-6), 平均值是: (2+6-1+4+1)/5 => 2.4
  • ...

这样一直算下去,我们就可以得到最终的输出结果࿱

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值