例题(最大子段和问题)
给定由n个整数组成的序列(a1, a2, …, an),最大子段和问题要求该序列形如
的最大值(1≤i≤j≤n),当序列中所有整数均为负整数时,其最大子段和为0。例如,序列(-20, 11, -4, 13, -5, -2)的
最大子段和为
思路:
① a1, …, an的最大子段和=a1, …,a 的最大子段和;
② a1, …, an的最大子段和=a +1, …, an的最大子段和;
③ a1, …, an的最大子段和=,且
int MaxSum(int a[ ], int left, int right)
{
sum=0;
if (left= =right) { //如果序列长度为1ÿ