三种方法求最大子列和问题

题目
给定N个正整数的序列{A1,A2,…,An},求其子列和的最大值

方法一: 暴力破解

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=ThisSum;
        }
	}
	return MaxSum;
}
int MaxSubseqSum1(int A[],int N)
{
	int ThisSum,MaxSum=0;
	int i,j,k;
	for(i=0;i<N;i++){
        ThisSum=0;
        for(j=i;j<N;j++){
            ThisSum+=A[j];
            if(ThisSum>MaxSum)
            	MaxSum=ThisSum;
        }
	}
	return MaxSum;
}

方法二:分治算法
方法三:在线求值

猜你喜欢

转载自blog.csdn.net/FZUMRWANG/article/details/88686603