This is actually a problem with a textbook that I studied in college (Data Structures and Algorithms in C by Mark Allen Weiss) ... This is a very beautiful and elegant solution and solves in O (N)
int MaxSubsequenceSum(int A[])
{
int sum = 0, maxSum = 0;
for (int j = 0; j < A.Length; j++)
{
sum = sum + A[j];
if (sum > maxSum)
maxSum = sum ;
else if (sum < 0)
sum = 0;
}
return maxSum;
}
source
share