数组最大子序列的和

时间:2022-07-30 19:24:32
/************************************************************************/
/* 求最大子序列的和,时间复杂度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;
    }