程式設計之美 2 15 子陣列之和的最大值(二維)

2022-05-18 10:26:20 字數 581 閱讀 8306

思路,有了一維的思路,我們想辦法把二維問題轉化為一維的問題。

我們假定已經選中了行的範圍是 a-c 那麼把每一列中 a-c的元素加起來就變成了乙個一維的問題。只需對行的範圍遍歷,再用一維的方法來解就可以了。

注意,也可以對列的範圍遍歷,行和列那個小就對哪個遍歷。 複雜度為o(m * n * min(m, n))

#include #include 

void getsumcol(int * a, int acolnum, int rowbegin, int rowend, int *sumcolarray)

}}int getmax2darraysum(int * a,const

int arownum,const

intacolnum)}}

free(sumcolarray);

return

maxsum;

}int

main()

, ,,};

int max = getmax2darraysum((int*)a, 4, 5

);

return0;

}

程式設計之美 2 15 子陣列之和的最大值(二維)

給乙個二維陣列,求子陣列的和的最大值,也就是求子矩陣的最大和。這道題的解題思路與2.14求陣列的子陣列之和的最大值有類似之處,具體步驟如下 設原陣列為a,行數為row,列數為column.1.先求矩陣p row 1,column 1 p i,j 表示在a中以a i 1,j 1 到a 0,0 為對角線...

程式設計之美 求陣列的子陣列之和的最大值

前段子時間舍友恒恒問了我乙個問題 怎樣在乙個陣列中找到乙個子陣列使得各個元素之和最大,當時自己想了片刻,設定乙個變數sum,就說從左邊開始變數整個陣列,乙個個相加到sum中,發現了sum 0的話,就把sum設定為0就可以了,後來想了下,得到的結果未能保證正確,我們應該在遍歷的過程中儲存下sum的最大...

求陣列的子陣列之和的最大值(程式設計之美)

題目要求 乙個有n個整數元素的一維陣列 a 0 a 1 a n 2 a n 1 這個陣列當然有很多子陣列,那麼子陣列中和最大值是多少呢?1 子陣列是連續的 2 求子陣列的和,不用求子陣列的具體位置 3 陣列的元素時整數,所以陣列可能包含有正整數 零 負整數 解法一 暴力解法,從陣列的第0位開始遍歷陣...