/*
copyright@nciaebupt 转载请注明出处
题目:求一个M*N的矩阵的最大子矩阵和。
比如在如下这个矩阵中:
0 -2 -7 0
9 2 -6 2
-4 1 -4 1
-1 8 0 -2
拥有最大和的子矩阵为:
9 2
-4 1
-1 8
其和为15。
*/
#include <cstdlib>
#include <iostream>
int maxSubArray(int * array, int len){
if(array == NULL || len < 1) return -1;
int max = -10000;
int b = 0;
for(int i = 0; i < len; ++i){
if(b > 0){
b += array[i];
}
else{
b = array[i];
}
if(b > max) max = b;
}
return max;
}
int maxSubMatrix(int matrix[][4], int rowlen, int collen){
if(matrix == NULL || rowlen < 1 || collen < 1) return -1;
int max = -10000;
int array[collen];
for(int i = 0; i < rowlen; ++i){
for(int j = 0; j < collen; ++j){//init array to 0
array[j] = 0;
}
for(int j = i; j < rowlen; ++j){//from row i to row j
for(int k
求一个M*N的矩阵的最大子矩阵和。
最新推荐文章于 2024-09-09 18:45:19 发布
该博客介绍了一个求解M*N矩阵中最大子矩阵和的算法。通过遍历矩阵,计算每行元素的累加和,并应用动态规划思想找到最大子数组和,最终得到最大子矩阵的和。示例代码用C++编写,展示了一种解决此问题的方法。
摘要由CSDN通过智能技术生成