- 最大子段和问题:给出一个序列,其子段为该序列的一个连续的区间。例如:(1 -1 2 2 3 -3 4 -4) ,(2 2 3 -3 4)为他的一个子段。给出一个序列,求出数字求和最大。
int MaxSum(int n, int *a) { int sum = 0, b = 0; for (int i = 0; i <= n; i++) { if (b > 0) b += a[i]; else b = a[i]; if (b > sum) sum = b; } return sum; } int main() { int a[]={ 2,2,3,-3,4 }; cout << MaxSum(5, a); }
12-04
2029

12-09
4466

09-08
2936
