7-2 最大子段和 (40 分)
标签:灵活 循环 lang 报告 递归算法 最大子段和 bsp 实践 column
给定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)。
心得:该题是对时间复杂度做出了要求。利用动态规划的方法优化了原本繁琐的递归算法,时间复杂度下降了许多,应灵活应对并优化自己的算法。
标签:灵活 循环 lang 报告 递归算法 最大子段和 bsp 实践 column
原文地址:https://www.cnblogs.com/lqx739744996/p/11708115.html