“最长子序列”问题(即有限空间内,满足一定条件的最长顺序子序列)
一般的解法:用DP表来记录以当前节点为末节点的序列的解,这样可以固定问题的一端,以下以两个例子来讲子序列问题。
1.在一个整数数组中,找到最长的递增子序列。
分析:用DP表来记录以当前节点为末节点的序列的最大长度。maxLength[i]=max{maxLength[k],k=0~i-1and array[i]>array[k]}
参考解答:
#include <iostream>
#include <vector>
using namespace std;
int LongestIncreasingSubsquence(int arr[],int n)
{
vector<int> maxLength(n,1);
int global_max=0;
for(int i=0;i<n;i+&