理解数据结构——滑动窗口

滑动窗口概念

基于双指针的一种思想,两个指针指向的元素之间形成了一个窗口

分类

一种是固定大小的窗口
一种是大小动态变化的窗口

应用

利用滑动窗口获取平滑的数据,如一段连续时间的数据平均值,能够有更好的稳定性,如温度检测。

核心思想

  1. 初始时,左右指针left,right都指向第0个元素,窗口为[left,right),注意这里是左闭右开的,因此初始窗口[0,0)区间没有元素,符合我们的初始定义

image

  1. 开始循环遍历整个数组元素,判断当前right指针是否超过整个数组的长度,是退出循环,否则执行第3步

  2. 然后right指针开始向右移动一个长度,并更新窗口内的区间数据

image

  1. 当窗口区间的数据满足我们的要求时,右指针right就保持不变,左指针left开始移动,直到移动到一个不再满足要求的区间时,left不再移动位置
    image

  2. 执行第2步
    这中间,窗口的更新与维护时很重要的一环,新元素加入窗口,旧元素移出窗口,都需要及时地更新与这个窗口范围相关的数据

未完
待续

posted @ 2022-03-07 23:58  扬长避短  阅读(407)  评论(0)    收藏  举报