動態規劃之最長不降序子串行

2021-07-25 21:30:07 字數 504 閱讀 9266

用乙個陣列dp記錄以該元素開始的所對應最長不下降子串行的長度。初始化dp

經過迴圈執行後形成下表:

程式如下:

//最長不下降子串行

#include

using

namespace

std;

int dp[105];

int lis(int *a, int n) else

continue;

}//防止倒數第二個元素dp自加1

if (i != n-2 || a[n-2] < a[n-1]) dp[i] += dp[max_dp_i];

if (max_length < dp[i]) max_length = dp[i];

} return max_length;

}int main()

cout

<< lis(a, n) << endl;

}

由一小段的最優出發,推出整體的最

最長不降子串行 動態規劃

2008 4 8 最長不降子串行 小明晚上回家後,和爸爸玩這樣的乙個遊戲 給出n個 0一 動態規劃演算法 本題是比較簡單的動態規劃,請理解好遞推的過程。具體方法是對於陣列a,另設一陣列b,將b陣列內元素全置1,表示最短子串行長度為1。從陣列a左到右乙個個判斷,每判斷乙個,則從這個元素向右尋找,找到比...

動態規劃 最長不降子串行 NlogN演算法

nlogn演算法精髓在於設立陣列dp dp i 表示長度為i的不下降序列中結尾元素的最小值,用len表示陣列目前的長度,演算法完成後len的值即為最長不下降子串行的長度。設當前的以求出的長度為len,則判斷num i 和dp len 1.如果num i dp len 即num i 大於長度為len的...

求最長不降子串行(動態規劃)

求最長不下降子串行 動態規劃 狀態轉移方程 length i 1 length j j為data i data j 的情況下能使length j 取到最大的值 初始情況length 1 1 且length 0 0,這樣求出來的length j 才可以取到0 include int data 15 下...