Chinaunix首页 | 论坛 | 博客
  • 博客访问: 385719
  • 博文数量: 124
  • 博客积分: 2911
  • 博客等级: 少校
  • 技术积分: 1050
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-15 15:57
文章分类

全部博文(124)

文章存档

2012年(6)

2011年(26)

2010年(92)

我的朋友

分类: C/C++

2011-03-02 13:15:44

最大字段和

1.动态规划方程:

2.算法过程:
    b[i]=Max(b[i-1]+a[i],0); //b[i]为a[k..i]的字段和.可以仅为一个变量.
    maxSum[i]=Max(b[i],maxSum[i-1]);
3.代码实现:
int DP_MaxSum(int *a, int n)
{
        int i, maxSum = 0, b[0]=0;
        if(a[0] > 0)
                maxSum=b[0]=a[0];
        for(i=1; i
        {
                b[i] = (b[i-1]>0)?(b[i-1]+a[i]):a[i];
                if(maxSum < b[i])
                        maxSum = b[i];
        }
        return maxSum;
}

阅读(1160) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~