#include <iostream>
#include <string.h>
int Get_Max_Length(int arr[],int n)
{
int Lis[1000]; //到下表为止的数组的最大长度
int Max[1000]; //到下标为止的长度的最小数字
Lis[1] = 1; //初始化第一个元素
int MaxLen = 1;
Max[1] = arr[0];
int i,j;
for(i=1;i<n;i++)
{
for(j=MaxLen;j>=1;j--)
{
if(arr[i] > Max[j]) //查找 当前的 下标的 为止 最大长度
{
Lis[i] = j+1;
break;
}
}
if(Lis[i] > MaxLen) //更新 Lis[i] 数组
{
MaxLen = Lis[i]; //增加 一个 元素
Max[Lis[i]] = arr[i];
}
else if(Max[j] < arr[i] && arr[i] < Max[j+1]) //
{
Max[j+1] = arr[i]; //修改 到 下标为止 长度 的 最小的数字
}
}
return MaxLen; //返回最大长度
}
int main()
{
return 0;
}
最长递增子序列
最新推荐文章于 2023-03-25 14:35:19 发布
1653

被折叠的 条评论
为什么被折叠?



