最长上升子序列:
int N,b[1100]={0},MaxLen[1100]={0};
MaxLen[1] = 1;
//将信息输入到b数组中
for(i = 2;i<= N;i++)//每次求以第i个数为终点的最长上升子序列的长度
{
int nTmp = 0; //记录满足条件的,第i个数左边的上升子序列的最大长度
for(j = 1; j < i; j++) //察看以第j个数为终点的最长上升子序列
if( b[i] > b[j] )
if( nTmp < MaxLen[j] )//保留子串的原长度
nTmp = MaxLen[j];
MaxLen[i] = nTmp + 1;//比较完成,加上自身
}
int nMax = -1;
for(i = 1; i <= N; i ++ )
if( nMax < MaxLen[i])
nMax = MaxLen[i];
nMax为最长上升子序列