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

2022-07-17 13:03:14 字數 1247 閱讀 4417

1.題目。

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

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

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

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

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

2.設計思想。

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

3.**。

#includeusing

namespace

std;

#include

#include

#define max 10000

int max(int

b) n=0

; }

int max=m[0

];

for(i=0;i)

return

max;

}int

main()

cout

<

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

int q=4

;

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

k[q]=max(h);

q++;

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

k[q]=max(h);

q++;

}int t=0

; i=0

;

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

k[q]=max(h);

q++;

cout

<

int max=k[0

];

for(i=0;i)

cout

<

最大子矩陣的值為:

"<

cout

<

return0;

}

4.執行結果。

5.體會。

有了思路,進行程式設計時就方便多了,即使有些方面不好實現,但是大家一起思考,還是能解決的。

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

作業要求 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 ...