题目:给定N个整数的序列{ A 1 , A 2 , A 3 . . . A N A_1,A_2,A_3...A_N A1,A2,A3...AN}, 求函数 f ( i , j ) = m a x ( 0 , Σ k = 1 j A k ) f(i,j)=max(0,\Sigma_{k=1}^jA_k) f(i,j)=max(0,Σk=1jAk)的最大值
这一部分是浙大数据结构第一章节的一道题目,主要目的是讲解时间复杂度。
方法一
- 直接使用循环遍历的方法。
int MaxSubseqSum1( int A[], int N)
{
int ThisSum, MaxSum = 0;
int i,j,k;
for (i=0; i<N, i++){
//左边最小值
for (j=i; j<N; j++){
//右边最小值
ThisSum = 0;
for (k=i; k<=j; k++)//中间全部加和
ThisSum +=A[k];
if(ThisSum > MaxSum)//如果大于最大值
MaxSum =