理解数据结构——滑动窗口
滑动窗口概念
基于双指针的一种思想,两个指针指向的元素之间形成了一个窗口
分类
一种是固定大小的窗口
一种是大小动态变化的窗口
应用
利用滑动窗口获取平滑的数据,如一段连续时间的数据平均值,能够有更好的稳定性,如温度检测。
核心思想
- 初始时,左右指针left,right都指向第0个元素,窗口为[left,right),注意这里是左闭右开的,因此初始窗口[0,0)区间没有元素,符合我们的初始定义

-
开始循环遍历整个数组元素,判断当前right指针是否超过整个数组的长度,是退出循环,否则执行第3步
-
然后right指针开始向右移动一个长度,并更新窗口内的区间数据

-
当窗口区间的数据满足我们的要求时,右指针right就保持不变,左指针left开始移动,直到移动到一个不再满足要求的区间时,left不再移动位置
![image]()
-
执行第2步
这中间,窗口的更新与维护时很重要的一环,新元素加入窗口,旧元素移出窗口,都需要及时地更新与这个窗口范围相关的数据
未完
待续


浙公网安备 33010602011771号