滑动窗口最小算法

时间:2010-11-08 09:20:10

标签: algorithm

这是一个家庭作业问题。设A []是整数数组和整数K - 窗口大小。当它在A上滑动时,生成在窗口中看到的最小值的数组M.我发现an article有一个解决此问题的解决方案但不理解为什么它具有O(n)复杂度。任何人都可以向我解释一下吗?

1 个答案:

答案 0 :(得分:9)

这往往会让人们失望。您可能认为需要花费O(N^2)时间,因为您需要添加O(N)时间,并且您有O(N)个元素。但是,实现每个元素只能添加一次并删除一次。因此总共需要O(N)滑过整个数组A

每次将滑动窗口移动一个元素时,这会产生O(1)的摊销效率。换句话说,将滑动窗口移动一个元素所需的平均时间为O(1)