組員:蔡容玉 張丹丹
題目:求陣列的所有子陣列的和的最大值(二維)
把二維的問題化成一維的問題,首先我們知道某子矩陣的上,下邊界分別是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 解法二 思路 我們考慮陣...