具體意思:給出長度為n的陣列讓你求最大連續子段和, 輸出最大的值;
解決方法:定義dp陣列, dp[i]代表以第i個數結尾的連續序列和的最大值, 則狀態轉移方程為:
當然, 要記得把dp[0]初始化為0。還有一點要說的是如果輸入的資料全是負數的話,最終得到的答案會是0,而不是 最大的值。
附上**:
#include using namespace std;
int main()
int dp[1000];
dp[0] = 0;
for(int i = 1; i <= n; i++)
int maxs = -10000000;
for(int i = 1; i <= n; i++)
cout << maxs << endl;
return 0;
}
動態規劃之最長連續公共子串行
include include include using namespace std 最長連續公共子串行 int maxlength const char str1,const char str2,int str1 len,int str2 len c i j 表示以str1 i 1 和str2 ...
動態規劃解決最長的非連續子串行
在乙個數字序列中,找到乙個最長的非連續子串行,使得這個子串行是不下降 非遞減 現有序列a 則a的最長不下降子串行是。如果有多個最長序列,只需選數字順位靠後的序列從大到小輸出。輸入2行 第一行乙個整數n,表示有n個整數的序列要輸入,n 1000 第二行共有n個整數。輸出要求 輸出最長的不下降子串行,只...
leetcode 動態規劃 最長連續序列
給定乙個未排序的整數陣列,找出最長連續序列的長度。要求演算法的時間複雜度為 o n 示例 輸入 100,4,200,1,3,2 輸出 4解釋 最長連續序列是 1,2,3,4 它的長度為 4。由於o n 時間複雜度的限制,我們就不能採取先排序後遍歷的思路。針對o n 時間複雜度的實現思路 遍歷nums...