数组最大子序列的和

时间:2021-10-22 00:41:31
/************************************************************************/
/* 求最大子序列的和,时间复杂度Q(N)                                      */
/************************************************************************/
    bool g_bInputIsInvalid=false;//判断输入是否合法
    int FindGreatestSumOfSubArray(vector<int> array) {
        if(array.size()==0){
            g_bInputIsInvalid=true;
            return 0;
        }       
     vector<int>::const_iterator iter=array.begin();
     int nMaxSum=array[0];//这里很关键
     int nCurrentSum=0;
        for(;iter!=array.end();++iter){
            nCurrentSum+=*iter;
            if(nCurrentSum>nMaxSum){
                nMaxSum=nCurrentSum;
            }             
            else if(nCurrentSum<0){
                 nCurrentSum=0;
            }               
        }
        return nMaxSum;
    }