返回乙個二維整數陣列中最大子陣列的和 頭尾相接

2022-06-02 17:15:06 字數 1203 閱讀 7454

1.題目。

題目:返回乙個二維整數陣列中最大子陣列的和。

要求:輸入乙個二維整形陣列,陣列裡有正數也有負數。

二維陣列首尾相接,象個一條首尾相接帶子一樣。

陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。

求所有子陣列的和的最大值。要求時間複雜度為o(n)。

2.設計思想。

分別求出每一行的最大子矩陣,然後再兩行相加,求出最大子矩陣,一直到所有的行相加,求出最大子矩陣。比較其中最大的子矩陣值,找出最大的。

3.**。

1 #include2

using

namespace

std;

3 #include 4 #include 5

#define max 10000

6int max(intb)7

17 n=0;18

}19int max=m[0

];20

for(i=0;i)

2125

return

max;26}

2728

intmain()

2941 cout<

43for(i=0;i<4;i++)

4447

int q=4;48

for(i=0;i<3;i++)

4957 k[q]=max(h);

58 q++;59}

60for(i=0;i<2;i++)

6169 k[q]=max(h);

70 q++;71}

72int t=0

;73 i=0;74

for(int j=0;j<8;j++)

7580 k[q]=max(h);

81 q++;

82 cout<

83int max=k[0

];84

for(i=0;i)

8589 cout<

最大子矩陣的值為:

"<

90 cout<

91return0;

92 }

4.執行結果。

返回乙個二維整數陣列中最大子陣列的和

作業要求 1 輸入乙個二維整形陣列,陣列裡有正數有負數。2 二維陣列中連續的乙個子矩陣組成乙個子陣列。3 求所有子陣列的和的最大值。設計思想 1 將二維陣列分解成一維陣列,使用一位陣列求最大子陣列之和的方法。2 列舉出每乙個子陣列值的大小,然後進行比較。3 最終求得二維陣列最大子陣列之和。出現的問題...

返回乙個二維整數陣列中最大子陣列的和

一 題目及要求 題目 返回乙個二維整數陣列中最大子陣列的和。要求 輸入乙個二維整形陣列,陣列裡有正數也有負數。二維陣列首尾相接,象個一條首尾相接帶子一樣。陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。求所有子陣列的和的最大值。二 解題思路 因為是二維陣列首尾相連,所以將兩個同樣的陣...

返回乙個二維整數陣列中最大子陣列的和。

設計思路 通過之前一維環,進行拓展,成陣列。1 xiaosong du 2015 4 20 2 include 3 include 4 using namespace std 5 define m 3 6 define n 678 void main 9,b 2 n d 0,d1 0 11 int ...