最大子串行問題

2022-02-22 12:58:43 字數 724 閱讀 9561

題目:給定乙個整數列(可能有負數),求該整數列每個子串行的和的最大值,如果都為負數則結果為0;

例如:對於輸入:-2,11,-4,13,-5,-2   ,答案為20(從11 到 13,即就是:11+(-4)+13=20 )

粗略**如下(**已測試通過):

#include using namespace std;

//arr:目標陣列,length:陣列長度

//方法一:複雜度為:o(n^3)

int maxsubsum1(const int arr,int length)

} }return maxsum;

}//方法二:複雜度為:o(n^2)

int maxsubsum2(const int arr,int length)

} }return maxsum;

}//方法三:複雜度為o(n)

int maxsubsum3(const int arr,int length)

else if(thissum<0) //如果累加結果為負數則從0開始,也就是從下乙個數開始序列

}return maxsum;

}int main()

; //int result=maxsubsum1(arr,6);

//int result=maxsubsum2(arr,6);

int result=maxsubsum3(arr,6);

cout<}

最大子串行問題

問題描述 輸入一組整數,求出這組數字子串行和中最大值。也就是只要求出最大子串行的和,不必求出最大的那個序列。例如 序列 2 11 4 13 5 2,則最大子串行和為20。複雜度為o n 2 的演算法 include include int maxsubseqsum const int a,int n...

最大子串行問題

現在我們將敘述兩個演算法來求解最大子串行和問題 include int maxsubsequencesum int a,int n int main printf max d maxsubsequencesum a,15 return0 int maxsubsequencesum int a 15 ...

最大子串行之和問題

最大子串行之和問題 這個問題非常有趣,因為有很多中演算法可以解決這個問題。而這些演算法的執行效率也多種多樣。下面我們將看到四種演算法,演算法複雜度從指數一直過渡到線性複雜度。充分體現了演算法的優劣對執行效率的影響。第一種 intmaxsubsum1 const vector a return max...