【问题标题】:Sliding window minimum algorithm滑动窗口最小算法
【发布时间】:2011-05-06 13:41:36
【问题描述】:

这是一道作业题。令 A[] 是一个整数数组和整数 K——窗口大小。当它滑过 A 时,生成在窗口中看到的最小值数组 M。我发现 an article 有解决此问题的方法,但不明白 为什么 它具有 O(n) 复杂性。谁能给我解释一下?

【问题讨论】:

标签: algorithm sliding-window


【解决方案1】:

这往往会让人出局。你会认为这需要O(N^2) 时间,因为你添加需要O(N) 时间并且你有O(N) 元素。但是,实现每个元素只能添加一次和删除一次。所以总共需要O(N) 滑过整个数组A。

每次将滑动窗口移动一个元素时,这会产生O(1) 的摊销效率。也就是说,滑动窗口移动一个元素的平均时间是O(1)。

【讨论】:

    猜你喜欢
    • 2021-07-01
    • 2012-06-03
    • 1970-01-01
    • 2010-11-14
    • 2012-05-30
    • 2017-04-03
    • 2011-01-13
    • 2018-08-27
    • 2017-09-23
    相关资源
    最近更新 更多