Leetcode 最大的子矩陣和

2021-10-10 08:50:50 字數 733 閱讀 1479

給定乙個矩陣matrix,其中的值有正、有負、有0,返回子矩陣的最大累加和

例如,矩陣matrix為:

-90 48 78

64 -40 64

-81 - 7 66

其中,最大的累加和的子矩陣為:

48 78

-40 64

-7 66

所以返回累加和209。

【關於最大子陣列和問題】

最大的子陣列和可以採取一次o(n)級別複雜度的遍歷即可,一旦遇到sum<0 的情況,那麼前面一定拋棄,重置sum=0ans=max(ans,sum) 記錄下中途最大的值即可。

【思路】

行累積+分割槽最大子陣列求解。

對於每一行計算累積和 add  那麼

乙個區間[i=>j] 其和為 add[j]-add[i-1]  採取add[0]=0 輔助計算。
而所有行的[i=>j]和 組合成為乙個陣列,對該陣列進行最大子陣列和問題的求解,遍歷每一種可能的[i=>j]

總的時間複雜度為:o(m*m*n)

int main()

int ans=0;

for(int i=0;i<=m;i++)

for(int j=i+1;j<=m;j++) //研究每乙個子矩陣 該子矩陣的x範圍為【i=>j】

}cout<}

子矩陣的最大累加和

題目 給定乙個矩陣matrix,其中的值有正 有負 有零,返回子矩陣的最大累加和。例如矩陣matrix為 90 48 78 64 40 64 81 7 66 其中,最大累加和的子矩陣為 48 78 40 64 7 66 所以返回子矩陣的最大累加和為209。解析 最簡單也最容易想到的方法是求出矩陣中的...

子矩陣的最大累加和

一 題目要求 給定乙個矩陣matrix,其中的值有正有負,有0,返回子矩陣的最大累加和,例如,矩陣matrix為 90 48 78 64 40 64 81 07 66 其中,最大累加和的子矩陣為 48 78 40 64 7 66 所以返回累加和209 二 解題思路 將矩陣matrix n n 的每一...

子矩陣最大累加和

問題描述如下 給定乙個矩陣matrix,其中的值有正 有負 有0,返回子矩陣的最大累加和。藍橋備戰資料 演算法很美 chapter4 多維陣列和矩陣 先想到了一維陣列的求子陣列最大累加和的題目,時間複雜度為o n 利用這種思維來處理這道題目。第一列第二列 第三列最大累加和 第一行 1 1 1 1第一...