環狀二維陣列(改進版)

2022-07-18 22:33:15 字數 1451 閱讀 9736

改進版的程式中對此進行了判斷。

此問題分為兩種,一種是最大子數組成環,一種是最大子陣列未成環。未成環的部分之前已實現,下面是成環部分。

開始的思路是:將矩陣進行擴大,類似於一維陣列,但是擴大後就會出現子矩陣的範圍有可能超出矩陣的範圍。所以在此處要有乙個判斷。

改進後的程式

#include #include

using

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 結對程式設計要求 兩人結對完成程式設計任務。一...