改進版的程式中對此進行了判斷。
此問題分為兩種,一種是最大子數組成環,一種是最大子陣列未成環。未成環的部分之前已實現,下面是成環部分。
開始的思路是:將矩陣進行擴大,類似於一維陣列,但是擴大後就會出現子矩陣的範圍有可能超出矩陣的範圍。所以在此處要有乙個判斷。
改進後的程式
#include #includeusing
namespace
std;
#define max(a,b) ((a)>(b)?(a):(b))
#define maxn 100
inta[maxn][maxn];
intpartsum[maxn][maxn];
//計算子矩陣的和
int matrixsum(int s, int t, int i, int
j)int
main()
for (j = col+1; j <= 2 * col - 1; j++)
//cout << a[i][j] << " ";
} cout
<
}for (i = 0; i <= row; i++)
partsum[i][
0] = 0
;
for (j = 0; j <=2* col-1; j++)
partsum[
0][j] = 0
;
//計算矩陣的部分和
for (i = 1; i <= row; i++)
for (j = 1; j <= col; j++)
partsum[i][j] = a[i][j] + partsum[i - 1][j] + partsum[i][j - 1] - partsum[i - 1][j - 1
];
intn1, n2;
int maxsofar = a[1][1
];
for (n1 = 1; n1 <= row; n1++)
for (n2 = n1; n2 <= row; n2++)
//成環
環狀二維陣列
1.題目 輸入乙個二維整形陣列,陣列裡有正數也有負數。二維陣列首尾相接,象個一條首尾相接帶子一樣。陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。求所有子陣列的和的最大值。2.設計思路 參照環狀一維陣列,將二維陣列進行擴充套件。只將陣列的列數擴大為原來的2 n 1,行數不變。3.源 ...
第18周報告2 二維陣列 改進版)
第18周報告2 二維陣列實驗目的 學會二維陣列的操作實驗內容 二維陣列的操作 程式頭部注釋開始 程式的版權和版本宣告部分 檔名稱 作 者 雷恆鑫 完成日期 2011 年 12 月 21 日 版 本 號 v1.1 對任務及求解方法的描述部分 輸入描述 由程式產生隨機數作為初始值 問題描述 程式輸出 程...
環狀二維陣列最大子陣列求和
題目 返回乙個二維整數陣列中最大子陣列的和。要求 輸入乙個二維整形陣列,陣列裡有正數也有負數。二維陣列首尾相接,象個一條首尾相接帶子一樣。n陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。求所有子陣列的和的最大值。要求時間複雜度為o n 結對程式設計要求 兩人結對完成程式設計任務。一...