专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > C++

这个求最大子序列的程序为什么不能输出正确答案?该怎么解决

发布时间:2011-06-29 00:40:03 文章来源:www.iduyao.cn 采编人员:星星草
这个求最大子序列的程序为什么不能输出正确答案??
C/C++ code
#include <stdio.h>
#include <conio.h>
#define N 6

main()
{
    int i;
    int a[N]={-2,11,-4,13,-5,-2};
    printf("the old older is:n");
        for(i=0;i<N;i++)
            printf("%d  ",a[i]);
                printf("n");
                     i=MaxSubsequenceSum4(a,N);
                 printf("the max is %dn",i);
                printf("n");
        getch();
}

int
MaxSubsequenceSum4(const int a[],int n)     
{
    int ThisSum,MaxSum,j;

     ThisSum=MaxSum=0;
      for(j=0;j<n;j++)
      {
        ThisSum+=a[j];

         if(ThisSum>MaxSum)
            MaxSum=ThisSum;
         else if(ThisSum<0)
            MaxSum=0;
      }
     return MaxSum;
}



------解决方案--------------------
利用动态规划的思想 添加一个数组 记录前n项的和 最大的子串和 是两个数组的差的最大值
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: