【发布时间】:2019-04-05 18:26:31
【问题描述】:
我试图弄清楚解决滑动最大值问题的这段代码的时间复杂度是多少
我尝试了 2 个嵌套循环,但复杂度为 O(n*k),我认为下面列出的代码不太复杂
res=[]
for i in 0..(array.length-k) do
res << array.slice(i,k).sort[-1]
end
return res
我想知道使用的默认方法 (Ruby) 的复杂性是什么,以及它们如何影响这个循环的复杂性。谢谢
【问题讨论】:
-
for并没有真正在 Ruby 中使用,因为总有更好的方法来表达事物。考虑:(array.length - k).times do |i|作为替代方案。 -
并非所有人都知道“最大滑动问题”是什么。你能定义它(通过编辑)吗?我刚查了一下。给定
K,“找到每K个连续元素的最大元素。”。 -
@CarySwoveland 抱歉,我应该提前解释一下
-
[3, 3 , 5, 5, 7] 应该是滑动最大值(至少这是我在制作算法时的意图)。如果不是,请让我知道您的示例的结果应该如何。
-
我很抱歉。你说的对。 在找到问题的定义后,我误解了要返回的内容! ??????
标签: ruby time-complexity space-complexity