您的位置:首页 > 编程语言 > C语言/C++

最大上升子序列-C语言

2017-08-03 23:12 316 查看
测试用例:

输入:

8

1 3 4 2 7 9 6 8

输出:

5

#include<stdio.h>
#include<string.h>

#define MAXN 10000

int LISLength(int num, int * seqSrc)
{
int Len[MAXN], res = 1;
for (int m = 0; m < num; m++)
{
Len[m] = 1;
for (int i = 0; i < m; ++i)
{
if (seqSrc[i]<seqSrc[m] && Len[i] + 1>Len[m])
{
Len[m] = Len[i] + 1;
}
}
res = (res > Len[m] ? res : Len[m]);
}
return res;
}

int main()
{
int n, seq[MAXN];
while (scanf("%d", &n) != EOF)
{
for (int i = 0; i < n; ++i)
{
scanf("%d", &seq[i]);
}
printf("%d\n", LISLength(n, seq));
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息