Chinaunix首页 | 论坛 | 博客

分类: C/C++

2010-10-15 22:31:31

今天晚上我听我实验室的哥们说要去听李开复宣讲,我估计是创新工厂招人吧,他们回来时我问了下他们都搞些啥,LH说做了几个选择题,最后还有道编程序的题目:

输入一串数字,找出最长的递减序列,该递减序列可以间断的。比如说:2 9 10 8 7 6 11 4,那么就必须输出
9 8 7 6 4 和 10 8 7 6 4 因为它们长度都是5,


这个题目我思考了下,感觉其实也蛮简单的,思路如下:

定义一个数组,长度嘛,和输入数字串长度一样,然后每个数组元素的内容为它在这一列数中的序号,比如11对应的数组单元内容为1,10对应单元内容为2。然后让len-(a[i]-1)-i即为对应数字开始的递减数字串的长度,比较输出即可。


代码实现不难,我就不写了。
阅读(1033) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-10-19 10:02:26

呵呵,是阿,我定义的数组就是要存储该数的排名,11是最大的,就是1阿,10是第二大的,就是2啊。我这个思路是这样的。

Qsinzheng2010-10-19 01:51:32

11对应的数组单元内容为1?