2014-02-07 52 views
4

假設你有一個N × N矩陣,其中每行只有一個非零元素,每列只有一個非零元素(非零元素可以是正面的也可以是負面的)。我們想要找到最大總和子矩陣。我們能如此有效地這樣做?子矩陣N×N矩陣和N非零值的最大和,只有O(N^2)

矩陣的維數爲N × N且只有N個非零元素。 N很大,所以我不能使用O(N )算法。有沒有人知道如何及時解決這個問題?(N ),O(N log N)還是像這樣的其他時間複雜度?

謝謝!

+0

什麼是「微不足道的情況」? – Matt

+0

我假設N個非零元素的位置是未知的(不是稀疏矩陣),並且這些值都是正數和負數? – IdeaHat

+0

如果你不使用稀疏矩陣,那麼O(N^2)是最好的,因爲你至少必須讀取每個元素。可能將卡丹的算法推廣到二維。 http://stackoverflow.com/questions/12339280/find-max-sum-of-elements-in-array – Adam

回答