您的位置:首页 > 其它

最长递增子序列

2016-04-14 21:33 393 查看
#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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: