第07章:最大子串和

给定由n个整数(可能为负整数)组成的序列A1,A2,A3,...,An,求该序列的连续子段的和的最大值。当所有整数均为负整数时定义其最大子段和为0

 

#include<iostream>  

#define MAXSIZE 100  

using namespace std;  

int MaxSum(int[],int);  

int main(void)  

{  

    int n;  

    int array[MAXSIZE];  

    while(cin>>n)  

    {  

        for(int i=1;i<=n;i++)  

        {  

            cin>>array[i];  

        }  

        cout<<MaxSum(array,n)<<endl;  

    }  

    return 0;  

}  

int MaxSum(int array[],int n)  

{  

    int b=0;  

    int sum=0;  

    for(int i=1;i<=n;i++)  

    {  

        if(b>0)  

        {  

            b+=array[i];  

        }  

        else  

        {  

            b=array[i];  

        }  

        if(b>sum)  

        {  

            sum=b;  

        }  

    }  

    return sum;  

}  

posted @ 2015-09-26 23:12  Uncle_Nucky  阅读(172)  评论(0编辑  收藏  举报