動態規劃求解最長上升子序列問題
// ch12.cpp: 定義控制檯應用程式的入口點。
//
#include "stdafx.h"
#include "iostream"
#include "vector"
using namespace std;
int main()
{
//輸入資料
int N;
cin >> N;
vector<int>nums;
for (int i = 0; i<N; i++)
{
int numIn;
cin >> numIn;
nums.push_back(numIn);
}
int result[1001] = { 1 };//result[i]表示序列0-i上的最長序列長度
int maxLen = 1;//維護輸出結果maxLen
for (int i = 1; i<N; i++)
{
if (result[i] == 0) //初始化result陣列
result[i] = 1;
//更新
for (int j = 0; j<i; j++) //從前向後掃描以[i-1]為尾部的陣列,動態更新result[j](j從0到i-1)值
{
if (nums[i]>nums[j]) {
if ((result[j] + 1)>result[i])
result[i] = result[j] + 1;
if (result[j] + 1>maxLen)
maxLen = result[j + 1];
}
}
// for(int j=0;j<N;j++)
// cout<<result[j];
// cout<<endl;
}
cout << "最長上升子序列的長度為:" << maxLen << endl;
return 0;
}
執行結果如下圖:
相關文章
- 動態規劃:最長上升子序列動態規劃
- 最長上升子序列動態規劃動態規劃
- 動態規劃-最長上升子序列模型動態規劃模型
- 動態規劃7:最長上升子序列LIS動態規劃
- 最長公共子序列問題—動態規劃sdut動態規劃
- 動態規劃之最長公共子序列求解動態規劃
- 動態規劃經典問題----最長公共子序列動態規劃
- 動態規劃-最長公共子序列動態規劃
- 動態規劃——最長公共子序列動態規劃
- 動態規劃(最長公共子序列LCS)動態規劃
- 北京大學郭煒-最長上升子序列 動態規劃講解動態規劃
- 以最長公共子序列問題理解動態規劃演算法(DP)動態規劃演算法
- “最長公共字串子序列”問題的動態規劃法演算法字串動態規劃演算法
- 最長上升子序列
- 淺談最長公共子序列引發的經典動態規劃問題動態規劃
- 【LeetCode動態規劃#14】子序列系列題(最長遞增子序列、最長連續遞增序列、最長重複子陣列、最長公共子序列)LeetCode動態規劃陣列
- LeetCode 1626. 無矛盾的最佳球隊---【動態規劃】最長上升子序列變換版-->最大上升子序列和LeetCode動態規劃
- 動態規劃求最長降序序列動態規劃
- 力扣1143. 最長公共子序列 動態規劃之最長公共子序列力扣動態規劃
- 詳解動態規劃最長公共子序列--JavaScript實現動態規劃JavaScript
- 最長公共子序列&迴文字串 nyoj動態規劃字串動態規劃
- LeetCode 300. 最長上升子序列(Python、動態規劃、貪心演算法)LeetCodePython動態規劃演算法
- 動態規劃之子序列問題動態規劃
- python 動態規劃(揹包問題和最長公共子串)Python動態規劃
- [LeetCode解題] -- 動態規劃二 [ 子串、子序列問題 ]LeetCode動態規劃
- [演算法筆記]動態規劃之最長公共子串和最長公共子序列演算法筆記動態規劃
- 線性dp:最長上升子序列
- [動態規劃] 六、最長迴文子串動態規劃
- 動態規劃解最長迴文子序列並優化空間複雜度動態規劃優化複雜度
- DP筆記最長上升子序列(LIS)以及零件分組問題筆記
- 線性dp--最長上升子序列變形
- [線性dp] 合唱隊形(最長上升子序列模型)模型
- 最長上升子序列(LIS)的兩種演算法演算法
- 最長上升子序列LIS 詳解+變形+擴充
- 雙序列動態規劃動態規劃
- 【部分轉載】:【lower_bound、upperbound講解、二分查詢、最長上升子序列(LIS)、最長下降子序列模版】
- 揹包問題----動態規劃動態規劃
- 【動態規劃】揹包問題動態規劃