給定乙個矩陣,求和最大的子矩陣

2021-07-10 23:06:18 字數 744 閱讀 5516

題目:輸入n,代表方形矩陣的維度,然後輸入n^2個整數。請輸出和最大的子矩陣的和。

要點:利用了最大連續子串和的思路,實際上也是動態規劃的題目。這裡再強調一下,對於動態規劃的題目,我們經常會使用到-1下標,這樣會使得程式設計很方便。如何能夠正常的使用-1下標呢?見**:

#include 

using

namespace

std;

int mat[100][100];

int s[101][101];

int n;

int x[101];

int *dp;

int(*sum)[101];

void getsum(int a, int i, int j)

}inline

int max(int a, int b)

int main()

}for (int i = 0; i < n; i++)

}//sum[i][j]儲存的是mat[0][0] 和 mat[i][j]之間組成的矩陣的和

int ret = 0;

dp = reinterpret_cast

(x + 1);//這樣就可以用dp[-1]

for (int i = 1; i <= n;i++)//最大子矩陣行的維度為i

temp += arr[k];

if (temp < 0)}}

}return

0;}

流式輸出乙個矩陣所有子矩陣

行列數 var m 5,n 6 子矩陣行列數 var r 3,d 3 矩陣內數值最大值 var maxnumber 16 流式序列,從0 m這m 1個數中不重複取出有序的n個數 param m param n returns function subarrayindex m,n while true...

演算法 求矩陣中和最大的子矩陣

給定乙個正整數 負整數和 0 組成的 n m 矩陣,編寫 找出元素總和最大的子矩陣。返回乙個陣列 r1,c1,r2,c2 其中 r1,c1 分別代表子矩陣左上角的行號和列號,r2,c2 分別代表右下角的行號和列號。若有多個滿足條件的子矩陣,返回任意乙個均可。leetcode 解題思路 class s...

演算法 求矩陣中和最大的子矩陣

給定乙個正整數 負整數和 0 組成的 n m 矩陣,編寫 找出元素總和最大的子矩陣。返回乙個陣列 r1,c1,r2,c2 其中 r1,c1 分別代表子矩陣左上角的行號和列號,r2,c2 分別代表右下角的行號和列號。若有多個滿足條件的子矩陣,返回任意乙個均可。leetcode 解題思路 class s...