最長連續子串行和(基礎動態規劃)

2021-08-22 03:21:43 字數 487 閱讀 8122

具體意思:給出長度為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...