A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

输入一个个数较大的正整数数组[数字范围在0~9999],将部分数组元素的十进制表示连接起来排成一个数,输出能排出的所有数字中最大的一个。find例如输入数组{3423,33,456,9,8,7,21}和3,则输出的最大数为:456342333。
要求:
(1) 输出数字用十进制字符串表示
(2)除打印函数和内存创建/销毁函数外,不得使用其它库函数,如需要相似功能,请自己实现;
(2)先给出求解思路,尽量使用高效的算法。

8 个回复

正序浏览
萌新路过围观,貌似好高深的样子
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
小菜鸟爱莫能助
回复 使用道具 举报
我的理解啊,先比较出任意数组中的最大的n个数,然后存入另一个数组或者集合中,然后便历其中元素,分别比较其首位数字的大小,如果一样则进行下一位的比较,将排好顺序的数字存入下一个容器,练成字符串,最后转成数组,我去试试,看看行不行
回复 使用道具 举报
现在在搞安卓,java已忘完。
回复 使用道具 举报
萌萌哒  路过借过~
回复 使用道具 举报
论坛的大神,帮帮忙
回复 使用道具 举报
比如键盘录入5。生成数组{456,9,3756,82,1}。
继续键盘录入3。得到(456,4566,82)
分别比较这3个数的索引,456、4566(索引越界需要判断的)
最终生成数字82 4566 456
回复 使用道具 举报
有点小思路。如果用键盘录入,假如是5生成0~9999之间的5个数字放在数组中,在键盘录入3,(意思大概是从这个数组中选出3个最大数),这个时候比较这3个数的索引,首先索引0,1,2,3。如果索引大的就排在最前面组成数字,(需要判断索引越界的情况)。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马