最近我打算重温一遍数据结构,于是又遇到了求最大子序列和这一基本问题。记得之前我就没有明白透彻,这次便记录下来。
求最大子序列和,即求一个序列中,和值最大的连续子序列。首先采用暴力解法,即求出所有的子序列和,得到最大和,这个算法的时间复杂度是O(n^2)。
int MaxSubSum(int K, int a[]) //K是序列个数,用数组a存储
{//计算所有子序列的和 时间复杂度是O(n^2)
int preSub, maxSubSum = 0;
for (int i = 0; i < K; i++)
{
preSub = 0;
for (int j = i; j < K; j++)
{
preSub += a[j];
if