经过半年的学习自己的<<数据结构和算法分析>>这么课程算是结束了,但是感觉自己收获甚少,所以利用暑假的时间自己希望重温数据结构和算法.
作为一名菜鸟,自己默默的努力吧.
#include <stdio.h>
#define N 1002
int a[N];
int dp(int a[],int len)
{
int i,k;
int b[N];
int tmp;
b[0]=1;
for(i=1;i<len;i++)
{
tmp = 1;
for(k=0;k<i;k++)
{
if(a[k]<a[i] && b[k]+1>tmp) tmp=b[k]+1;
}
b[i]=tmp;
}
tmp = 0;
for(i=0;i<len;i++) if(tmp<b[i]) tmp=b[i];
return tmp;
}
int main()
{
int i;
int count;
while((scanf("%d",&count))!=EOF)
{
for(i=0;i<count;i++)
scanf("%d",&a[i]);
printf("%d\n",dp(a,count));
}
return 0;
}这是我接触的第一个算法.算是勉励自己吧.
初探最长递增子序列算法
本文分享了作者在学习数据结构与算法过程中的心得,重点介绍了第一个接触的算法——求解最长递增子序列问题。通过一个C语言实现的例子,展示了如何使用动态规划方法来解决该问题。
11万+

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



