求最大的子序列和问题
给定整数A1,A2,....An,....(可能有负数),求该数据序列的最大子序列的和。比如:输入-2, 11, -4, 13, -5, -2; 答案是20(11,-4,13三个连续数字的和)
我们遍历一次数据序列,当每次的this_sum大于最大值的时候就更新max_sum的值。当this_sum小于0的时候,就把它置为0,再从当前位置开始计算(每次求和的结果小于0,就从下一个数据开始求和)。 还有一点要清楚,最大序列的第一个数字不可能小于0。可以看出该算法的时间复杂度是O(n);
该问题还有其它几种时间复杂度比较高的算法。具体看:数据结构与算法分析C++描述(2.3章节)
/*************************************************************************
> File Name: max_seq_sum.cpp
> Author:
> Mail:
> Created Time: 2016年01月05日 星期二 19时49分30秒
***********************************