4
這是一個家庭作業問題。讓A []是一個整數和整數K窗口大小的數組。當它在A上滑動時生成在窗口中看到的最小值的數組M.我發現an article具有針對此問題的解決方案,但不明白爲什麼它具有O(n)複雜性。有人可以向我解釋嗎?滑動窗口最小算法
這是一個家庭作業問題。讓A []是一個整數和整數K窗口大小的數組。當它在A上滑動時生成在窗口中看到的最小值的數組M.我發現an article具有針對此問題的解決方案,但不明白爲什麼它具有O(n)複雜性。有人可以向我解釋嗎?滑動窗口最小算法
這往往會把人趕出去。你會認爲這將需要O(N^2)
時間,因爲你的理由增加需要O(N)
時間,你有O(N)
元素。但是,實現每個元素只能添加一次並刪除一次。因此總共需要O(N)
才能滑過整個陣列A
。
每當您將滑動窗口移動一個元素時,這會產生一個分攤效率O(1)
。換句話說,將滑動窗口移動一個元素所需的平均時間爲O(1)
。
@Andre:[「家庭作業標籤,就像其他所謂的'meta'標籤,現在不鼓勵。]](http://meta.stackexchange.com/q/10812) – 2010-11-08 09:46:09
哦,不知道那。看到它請http://stackoverflow.com/questions/4114917/sql-query-for-vendors-who-have-sold-item-more-than-once。也許標籤的描述中應該有一個註釋? – AndreKR 2010-11-08 09:50:00