| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1163 人关注过本帖
标题:高手们,给个思路就行,谢谢各位了.
只看楼主 加入收藏
冰兵
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2010-7-13
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:26 
高手们,给个思路就行,谢谢各位了.
求数组最长的单调递增子序列,例如 a[10]={1,2,9,5,6,7,4,3,10} 上述数组中最长单调递增子序列是:1,2,5,6,7,8,10。
搜索更多相关主题的帖子: 思路 
2010-07-26 20:47
vs_inzaghi
Rank: 5Rank: 5
来 自:湖北
等 级:职业侠客
威 望:1
帖 子:303
专家分:364
注 册:2009-8-17
收藏
得分:2 
1,先找出数组中的最大数,记下该数的位置,假设为第a个
2,建个链表,
3,从第一个开始,一直到第a个,依次两两比较,凡是后一个数比前一个数大的(就是满足递增条件的),将前一个数写入链表,不满足条件的(就是后一个数比前一个数小的),跳过该较小数,继续比较
4,一直比较到第a个为止
5,输出链表,释放内存

以上是只有一个最大数的情况,若有n个最大数情况下,假设有3个10,位置分别为第a个,第b个,第c个(假设10为最大),那么就有三个递增序列,分别是第一个到第1个10之间的序列,第a+1个数到第2个10之间的序列,第b+1个数到第三个10之间的序列,也是依次按递增序列先后写进同一个链表,然后在链表中查找哪个序列最长,就输出那个序列,最后记得释放内存就可以了……

我个人的想法啊……呵呵……应该还有更好的……

我很懒,但我讨厌别人说我懒……
2010-07-26 21:48
encounter
Rank: 5Rank: 5
来 自:扬州
等 级:职业侠客
威 望:2
帖 子:150
专家分:359
注 册:2010-7-24
收藏
得分:2 

第一个数放一数组里b[]
第二个数如果比第一个大,放第一个数组里b[], b++
第二个数如果比第一个小放c[],c++


下一个数如果满足大于前一个数就 放到所有的满足条件的数组里
不满足则放另一数组
最后比较b,c.......
我想 还是定义一个二维数a[][]组会简单一点,对应的就是a[1][],a[2][],a1++,a2++
最后比较a1,a2....就行了
明白否


ping   nbtstat   netstat   tracert    nat   at    ftp   telnet..................
2010-07-26 22:14
vs_inzaghi
Rank: 5Rank: 5
来 自:湖北
等 级:职业侠客
威 望:1
帖 子:303
专家分:364
注 册:2009-8-17
收藏
得分:2 
回复 3楼 encounter
这样确实好写点,不过用链表的话可以节约内存……呵呵……

我很懒,但我讨厌别人说我懒……
2010-07-26 23:36
encounter
Rank: 5Rank: 5
来 自:扬州
等 级:职业侠客
威 望:2
帖 子:150
专家分:359
注 册:2010-7-24
收藏
得分:2 
回复 4楼 vs_inzaghi
我才上了10节C语言课
还逃了两节,就不懂链表的
可以教我吗
开学就得考2级




ping   nbtstat   netstat   tracert    nat   at    ftp   telnet..................
2010-07-27 08:36
handong0823
Rank: 1
等 级:新手上路
帖 子:16
专家分:7
注 册:2010-7-22
收藏
得分:1 
写个思想吧:

b[i]<b[i+1];
i++;
a[j]=b[i];

2010-07-27 09:53
冰兵
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2010-7-13
收藏
得分:0 
回复 2楼 vs_inzaghi
谢谢啦
2010-07-27 10:40
冰兵
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2010-7-13
收藏
得分:0 
回复 3楼 encounter
谢谢啦
2010-07-27 10:40
冰兵
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2010-7-13
收藏
得分:0 
回复 6楼 handong0823
谢谢啦
2010-07-27 10:42
冰兵
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2010-7-13
收藏
得分:0 
回复 3楼 encounter
这个方法有问题,如果那样做的话,例题就不满足啊b[]中是1,2,9,6,7,8,10。c[]是5,4,3。
2010-07-27 10:48
快速回复:高手们,给个思路就行,谢谢各位了.
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015578 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved