最长上升子序列 Longest Increase Subsequence
#include <iostream>
using namespace std;
void LongestIncreaseSequence(int *a,int n){
int dp[n];
int ans = 1;
for(int i = 0;i < n;i ++){ // 此循环掌握每一个阶段(i)dp的值
dp[i] = 1;
for(int j = 0;j < i;j ++){ // 询问前i-1个阶段的最佳决策
int temp = dp[j] + 1;
if(a[j] < a[i] && temp > dp[i])
dp[i] = temp;
}
if(dp[i] > ans) ans = dp[i];
}
cout << ans << endl;
}
int main()
{
int a[] = {2,7,1,5,6,4,3,8,9};
LongestIncreaseSequence(a,9);
}