首页 > 编程语言 >Python滑动窗口算法:滑动窗口算法(4 by 4 sliding window price)

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

时间:2023-10-15 17:04:56浏览次数:45  
标签:窗口 复杂度 嵌套循环 算法 大小 滑动

我知道滑动窗口算法的时间复杂度是 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)。

标签:窗口,复杂度,嵌套循环,算法,大小,滑动
From: https://blog.51cto.com/tbapi2014/7872638

相关文章

  • 数据结构和算法基础(Java语言实现)pdf电子版柳伟卫2021年
    数据结构和算法基础(Java语言实现)pdf电子版下载作者: 柳伟卫出版年: 2021-11ISBN: 9787301325872下l载连接最新Java领域的算法、数据结构方面的知识书籍。越是基础越是重要!......
  • 【高级机器学习算法】6.机器学习应用建议
    模型评估模型评估是机器学习中非常重要的一部分,它可以帮助我们评估模型的好坏,从而选择最优的模型。评估方式在机器学习中,我们通常会将数据集划分为训练集和测试集,训练集用于训练模型,测试集用于评估模型的好坏。评估指标训练误差:模型在训练集上的误差,用于衡量模型在训练集上......
  • 22_STL之算法
    STL之算法函数对象重载函数调用操作符的类,其对象常称为函数对象(functionobject),即它们是行为类似函数的对象,也叫仿函数(functor),其实就是重载"()"操作符,使得类对象可以像函数那样调用。注意:​ 1.函数对象(仿函数)是一个类,不是一个函数。​ 2.函数对象(仿函数)重载了"......
  • linux的expect用法,用来跳过窗口交互性
    expect的核心是spawnexpectsendset spawn调用要执行的命令expect等待命令提示信息的出现,也就是捕捉用户输入的提示:send发送需要交互的值,替代了用户手动输入内容set设置变量值interact执行完成后保持交互状态,把控制权交给控制台,这个时候就可以手工操作了。如果没有这一句登......
  • 《算法学习专栏》—— DP问题之状态机模型
    2023年10月13日更新于2023年10月13日一、前言本栏,为状态机模型,题目主要来源日常,目前主要来源于Acwing的提高课。希望以后做到状态机的题目,也能加进来,不断完善。使用的分析方法均为闫式DP分析法。字臭。。。希望能用手写板慢慢写的好看。二、状态机模型2.1对于状态机的考虑......
  • 算法第2章实践报告1
    7-1Cablemaster(切割绳子)有N条绳子,它们的长度分别为x。如果从它们中切割出K条长度相同的绳子,这K条绳子每条最长能有多长?输入格式:第一行两个整数n和k(1<=n<=10000;1<=k<=10000)。接下来n行,描述了每条绳子的长度x,x也是整数。输出格式:切割后每条绳子的最大长度。完整代码:......
  • 【算法题】6939. 数组中的最大数对和
    题目:给你一个下标从0开始的整数数组nums。请你从nums中找出和最大的一对数,且这两个数数位上最大的数字相等。返回最大和,如果不存在满足题意的数字对,返回-1。示例1:输入:nums=[51,71,17,24,42]输出:88解释:i=1和j=2,nums[i]和nums[j]数位上最大的数字相等,且这......
  • 【算法题】88. 合并两个有序数组
    题目:给你两个按非递减顺序排列的整数数组nums1和nums2,另有两个整数m和n,分别表示nums1和nums2中的元素数目。请你合并nums2到nums1中,使合并后的数组同样按非递减顺序排列。注意:最终,合并后数组不应由函数返回,而是存储在数组nums1中。为了应对这种情况,nums1的......
  • RaftPaper:寻一个可被理解的共识算法
    周末躺不平,摆不烂,卷不动,随便读一篇paper吧原文:InSearchofanUnderstandableConsensusAlgorithm作者:DiegoOngaro/JohnOusterhout——StanfordUniversity摘要Raft是一个用于管理一份被复制的日志的共识算法,它和(multi-)Paxos产出的结果等价,和Paxos一样高效,但它的结......
  • 代码随想录算法训练营-动态规划-3-(0-1背包问题)|416. 分割等和子集、1049. 最后一块石
    416.分割等和子集01背包的递推公式为:dp[j]=max(dp[j],dp[j-weight[i]]+value[i]);如果dp[j]==j说明,集合中的子集总和正好可以凑成总和j,理解这一点很重要。1classSolution:2defcanPartition(self,nums:List[int])->bool:3_sum=......