首页 > 技术文章 > 算法第三章上机实践报告

lqx739744996 2019-10-20 16:55 原文

7-2 最大子段和 (40 分)
 

给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时,定义子段和为0。

要求算法的时间复杂度为O(n)。

输入格式:

输入有两行:

第一行是n值(1<=n<=10000);

第二行是n个整数。

输出格式:

输出最大子段和。

输入样例:

在这里给出一组输入。例如:

6
-2 11 -4 13 -5 -2

输出样例:

在这里给出相应的输出。例如:

20


时间复杂度:单重循环,0(N)
空间复杂度:用一个变量存储子段和再与最大的相比较,为O(N)。

心得:该题是对时间复杂度做出了要求。利用动态规划的方法优化了原本繁琐的递归算法,时间复杂度下降了许多,应灵活应对并优化自己的算法。

推荐阅读