首页 > 其他 > 详细

最大子序列和问题

时间:2015-06-09 21:22:43      阅读:254      评论:0      收藏:0      [点我收藏+]

问题描述:给定整数数组\(A{}_1,{A_2}, \cdots {A_N}\),求\(\sum\limits_{k = i}^j {{A_k}} \)的最大值(如果所有整数为负数,则最大子序列的和为0)
输入:一个整数数组\(A{}_1,{A_2}, \cdots {A_N}\)
输出:最大子序列和的值

#include<iostream>
using namespace std;
int MaxSubsequenceSum(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)
            ThisSum=0;
    }
    return MaxSum;
}
void main()
{
    int A[]={4,-6,5,-2,-1,2,6,-2};
    cout<<MaxSubsequenceSum(A,8);
    cout<<endl;
    //return 0;
}


时间复杂度:\({\rm O}\left( N \right)\)

最大子序列和问题

原文:http://www.cnblogs.com/riden/p/4564412.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!