Python滑动窗口算法:滑动窗口算法(4 by 4 sliding window price)

我知道滑动窗口算法的时间复杂度是 o(N),但是可变大小的滑动窗口算法的时间复杂度是多少。

对于 e-

数组 = 1,2,3,4,5,6

当滑动窗口的大小为 = 1 时窗口-1,2,3,4,5,6

当滑动窗口的大小为 = 2 时窗口-1,2,2,3,3,4,4,5,5,6

当滑动窗口的大小为 = 3 时窗口-1,2,3,2,3,4,3,4,5,4,5,6

等等...

窗口大小的范围为 1 到 n(窗口大小的有效值)。如果创建单个窗口的成本为 O(N),则创建 N 个窗口的成本为 O(N ^ 2)?

在数组中运行滑动窗口是 O(n),而不管窗口的大小。

对于所有窗口大小,头指针和尾指针单调增加。相反,典型的嵌套循环二次算法为每个外部索引i运行内部索引jin

这里的假设是,除了 deque 优惠和投票(每个i的恒定时间)之外,您没有做任何额外的工作,例如为每个i循环遍历窗口。

如果你正在创建n窗口从1n,你回到经典的嵌套循环二次算法,O(n ^ 2)。

相关推荐
李可以量化27 分钟前
Redis 从了解到精通(三)下:性能基准测试与量化场景性能避坑指南
redis·git·python·量化交易·qmt·ptrade
格林威30 分钟前
C#图像处理:使用imagemagick实现像素放大水印转换等多种功能
android·开发语言·图像处理·人工智能·计算机视觉·c#·视觉检测
wifi___5 小时前
全局异常处理的原理
java·开发语言
平常心的技术小牛9 小时前
Qt-快速上手-QMenuBar
开发语言·qt
青 春 记 忆9 小时前
零基础入门Python11|Git实战:为任务管理器建立版本历史
开发语言·git·vscode·python·python3.11
Python私教9 小时前
多个项目怎么安全合并?先适配,再切换
后端·python·架构
余额瞒着我当琳11 小时前
C++--深拷贝三件套 + swap + 写时拷贝 + vector 扩容 + reserve
java·开发语言·c++
坐吃山猪11 小时前
WebClient内存配置解析
开发语言·springboot·webflux
北斗落凡尘11 小时前
LangGraph 入门实战(12)--使用MCP
后端·python·langchain
jdksjw12 小时前
同步与异步、阻塞与非阻塞、多线程、协程超详细讲解(Python并发编程从入门到精通)
开发语言·python