数据结构与算法分析——最大的子序列和问题
2015-08-20 11:18
309 查看
最大的子序列和问题
给定整数序列A1,A2,…,An(可能有负数),求子序列和的最大值(为方便起见,如果所有整数均为负数,则最大子序列和为0)。
例:
输入-2,11,-4,13,-5,-2时,最大子序列和为20(A2至A4)。
代码如下
给定整数序列A1,A2,…,An(可能有负数),求子序列和的最大值(为方便起见,如果所有整数均为负数,则最大子序列和为0)。
例:
输入-2,11,-4,13,-5,-2时,最大子序列和为20(A2至A4)。
代码如下
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; }