搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 求教,最基础的动态规划的题目。
标题:
求教,最基础的动态规划的题目。
只看楼主
huicpc0876
等 级:
论坛游民
帖 子:69
专家分:50
注 册:2009-7-24
结帖率:
92.59%
楼主
已结贴
√
问题点数:20 回复次数:2
求教,最基础的动态规划的题目。
题目:序列中最长递增子序列长度。
第一行输入要测试数据个数n
Sample Input
7
1 7 3 5 9 4 8
Sample Output
4
算法是,从最后一个开始,找到前面比他小的书,返回以前面这些数结尾的最长递增子序列的长度+1.
因为本人递归用的不好,想请高人写个代码参考下。
搜索更多相关主题的帖子:
动态规划
基础
2009-07-30 00:10
NoSoul
来 自:沈阳化工大学
等 级:
蜘蛛侠
帖 子:283
专家分:1010
注 册:2009-6-6
第
2
楼
得分:20
回复 楼主 huicpc0876
#include<stdio.h>
int b[1010];
int amaxlen[1010];
int main()
{
int n,i,j,nt,nMAX;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&b[i]);
amaxlen[1]=1;
for(i=2;i<=n;i++){
nt=0;
for(j=1;j<i;j++){
if(b[i]>b[j]){
if(nt<amaxlen[j])
nt=amaxlen[j];
}
}
amaxlen[i]=nt+1;
}
nMAX=-1;
for(i=1;i<=n;i++)
if(nMAX<amaxlen[i])nMAX=amaxlen[i];
printf("%d \n",nMAX);
return 0;
}
[[it] 本帖最后由 NoSoul 于 2009-7-30 08:40 编辑 [/it]]
我想伸手拉近點,竟觸不到那邊,就欠一點點,但這一點點...卻好遠
2009-07-30 08:38
Mo诫
等 级:
业余侠客
帖 子:80
专家分:223
注 册:2009-7-29
第
3
楼
得分:0
主要用到冒泡排序
2009-07-30 09:06
3
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-280986-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.018895 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved