
最大子列和问题,即给定N个整数的序列({A_1,A_2,ldots,A_N }),求函数(f(i,j)=maxlbrace 0,sum_{i=0}^n A_krbrace)的最大值。 例如(lbrace-2,11,-4,13,-5,-2rbrace)的最大子列和为20,子列为(lbrace11,-4,13rbrace). (lbrace-10, 1, 2, 3, 4, -5, -23, 3, 7, -21rbrace)的最大子列和为10,子列为(lbrace1,2,3,4rbrace)。 本文将给出实现这种算法的(Theta(N^2))和(Theta(N))算法
1 |
int (int A[], int N) |
(Theta(N))
1 |
int (int A[], int N) |
第二种方法可能不是很好理解,有必要的话可以根据上面的例子手动推演一下。




近期评论