336K 16MS GCC 627B 2009-01-12 20:44:31

一维的很简单,

就判断一个大于小于0的情况。(两个分支)。(求解过程中可不用建立数组c)

对于二维的

通过一个循环

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

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

遍历所有情况的起始行和结束行,然后将多行合并为一行(即将一列的元素加起来)

如当i=1,j=2时,就是将1,2行捆绑。即a[1][k]+a[2][k]=b[k],题目就转化为求数组b上的最大子段和。

代码如下:

 

Code
posted on 2009-01-12 21:00  pandy  阅读(537)  评论(0编辑  收藏  举报