如在其他帖子中指出的那樣,使用2-k kadane算法可以在O(n^3)
時間內完成在NxN
矩陣中找到最大總和子矩形。但是,如果矩陣稀疏,特別是O(n)
非零條目,那麼是否可以打時間?稀疏矩陣中的最大總和子矩形
如果有幫助,對於我感興趣的當前應用程序,只需在每行和矩陣的每一列中都有一個假設至多有一個非零值的解決方案就足夠了。然而,在我未來的應用中,這種假設可能不合適(只是稀疏性會持續),而且無論如何,我的數學直覺是,可能有很好的解決方案只是利用稀疏性,不會進一步利用矩陣對角線和置換矩陣的乘積。
如果每行和每列中至多有非非零值,則將這些值投影到x軸和y軸上,您將得到兩個尺寸爲n的一維數組。找到兩個數組的最大連續子數組。我認爲這會給你最大的子矩形。這可以在O(n)時間和O(n)空間複雜度中完成。 –
不幸的是,這個提議的O(n)解決方案不起作用,如下面的反例所示: 1 0 0 \\ 0 0 2 \\ 0 -1 0 \\ – user2566092