2021年数据结构Week1.2作业。
还没有写完。
给定整数序列 a1,a2,…,an,求 j > k 时,$\sum_{i=k}^{j}$ai的最大值
给出算法及其时间复杂度分析,并尝试设计时间复杂度更优的算法
如果要求给出 k, j 的值,如何改进算法?
[解法一]枚举法
思路
从a[0]开始,枚举所有的子序列。计算所有子序列的和,然后取出最大值。
时间复杂度 O(n^2); 空间复杂度 O(1);
代码
1 | int MaxSubarraySum(list){ |
然后就超时了(逃。
[解法二]分治法
思路
最大子序列只会出现在三个位置。