【100題】三十五 求一個矩陣中最大的二維矩陣(元素和最大)


一,題目:

求一個矩陣中最大的二維矩陣(元素和最大).:
1 2 0 3 4
2 3 4 5 1
1 1 5 3 0
中最大的是
:
4 5
5 3
要求:(1)寫出算法;(2)分析時間復雜度;(3)C寫出關鍵代碼

二,分析:

 假設最大子矩陣的結果為從第r行到k行、從第i列到j列的子矩陣,
如下所示(ari表示a[r][i],假設數組下標從1開始)

  | a11 …… a1i ……a1j ……a1n |
  | a21 …… a2i ……a2j ……a2n |
  .....

  | ar1 …… ari ……arj ……arn |    r . . .
  ..........                            | 
 

                                  V
  | ak1 …… aki ……akj ……akn |  
k . . .

  .....
  | an1 …… ani ……anj ……ann |

 那么我們將從第r行到第k行的每一行中相同列的加起來,可以得到一個一維數組如下:
 (ar1+……+ak1, ar2+……+ak2, ……,arn+……+akn)
 
由此我們可以看出最后所求的就是此一維數組的最大子段和問題,
到此我們已經將問題轉化為上面的已經解決了的問題了。

三,源碼(以下源碼是求n行n列矩陣最大子矩陣代碼)

算法復雜度為O(n*n)

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM