題目:給定乙個整數列(可能有負數),求該整數列每個子串行的和的最大值,如果都為負數則結果為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...