[問題] 第 k 大連續子陣列和

作者: FRAXIS (喔喔)   2015-02-27 22:39:11
這算是經典的最大連續子陣列和的變形吧。
給定一個長度為 n 的整數陣列,和一個正整數 k 。
找出一個在所有 C(n, 2) 個連續子陣列中,總和第 k 大的連續子陣列。
理論上是可以做到 O(n),但是這方法應該不實用。
雖然也有其他的O(n lg n),O(n lg^2 n)和O(n lg^3 n)的方法,
但是好像都不太實際 (O(n lg^3 n)的方法或許比較可行..)
我的問題是: 有沒有實際上比較有效率(o(n^2))且好實作的方法呢?
這問題是在 careercup 上看到的面試問題
http://www.careercup.com/question?id=12804676
作者: suhorng ( )   2015-02-27 23:16:00
對答案二分搜O(n log n log RANGE), 不能說是 o(n^2) 就是...http://tioj.ck.tp.edu.tw/problems/1208 這裡可以傳~^^^^^ 這邊不確定一個 log 還兩個 log
作者: FRAXIS (喔喔)   2015-02-28 02:21:00
應該是一個log 沒錯而且這方法也可以解決 找出長度在l~u之間的第 k 大連續和不過如果題目是找第 k 大 density 連續子陣列有沒有類似的技巧可以使用呢?density 我是指 average := 總和 / 長度
作者: DJWS (...)   2015-02-28 07:08:00
1.算前綴和 2.窮舉所有連續和/平均 3.找第k大是線性時間抱歉 我看到那是小寫了...

Links booklink

Contact Us: admin [ a t ] ucptt.com