求陣列的所有子陣列的和的最大值 二維

2022-05-17 23:47:08 字數 935 閱讀 2744

組員:蔡容玉 張丹丹

題目:求陣列的所有子陣列的和的最大值(二維)

把二維的問題化成一維的問題,首先我們知道某子矩陣的上,下邊界分別是a行和b行,接下來我們應該要確定左右邊界;把a行和b行之間的每一列看作是乙個整體,定義為:dc[1],dc[2],dc[3],……dc[m],把他們看作乙個元素並求出最大值;這樣就把二維問題轉化為一維問題。另外,二維情況下我們定義部分和:ps[i][j] 等於以(1,1)、(i,1)、(1,j)、(i,j)為頂點的矩形區域的元素之和。

源**:

#includeusing

namespace

std;

#define max(a,b) (((a)>=(b))?(a):(b))

int dc(int **ps,int a,int c,int

i)int

main()

cout

<

請輸入"

列數字:

"<

for (i=1;i<=n;i++)

}//求部分和

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

for (j=0;j<=m;j++)

for (i=1;i<=n;i++)

}//列舉求出問題的解

for (a=1;a<=n;a++)}}

}cout

return0;

}

執行結果:

以上!謝謝!

求陣列的子陣列之和最大值

題目 乙個有n個整數元素的一維陣列a 0.n 1 這個陣列當然有很多子陣列,那麼子陣列之和最大值是多少?解答 求子陣列之和最大,這裡是連續的子陣列,如果乙個數為負數,陣列之和會減少,記住最大值,只要陣列之和沒有小於0就可以繼續累加,比如,3到 1子陣列之和減小了,但是沒有小於0,可以繼續累加下乙個數...

求陣列的子陣列之和的最大值

本題的要求顯然是o n 級的複雜度咯 結合書上的分析,可以發現如下條件 從陣列右邊像左遍歷,當前下標為i,那麼最大值有3中情形 1.最大值為array i 2.最大值為array i maxsuminclude 3.最大值為不包括array i 的maxsumexclude 最後返回最大值 max ...

求陣列的子陣列之和的最大值

乙個有n個整數元素的一維陣列 a 0 a 1 a n 2 a n 1 這個陣列當然有很多子陣列,那麼子陣列之和的最大值是什麼呢?下面將給出3種解法的 解法一 int max maxsum1 int a,int n return maxnum 分析 該演算法的複雜度為o n2 解法二 思路 我們考慮陣...