2013年去哪网校招题目

来源:互联网 发布:局域网视频网站源码 编辑:程序博客网 时间:2024/05/16 01:04
题目:
给定一个整型数组,对这个整数数组排序,使得按序拼接数组各元素得到的值最小,示例:[3,83,8,13,1],被排序后的数组为[1,13,3,83,8]
       依次拼接得到最小的数1133838
=========================================ccdd==============================================
思路:
本人最直接的思路是,把所有的数全排序一下,取一个最小的,貌似有点暴力,确实最容易想到的
下面程序的思路是:
我们首先获取数组中每个数的最高位,然后按照最高位进行排序,对应的原数组也进行排序
                    如[3,83,8,13,1]转换后为:[1,1,3,8,8],我们按照这个顺序对原数组进行排序,结果为[13,1,3,83,8]
现在我们要做的就是,遍历首位相同的元素,两个交换拼接比较大小,若前者大于后者则交换
完成后就会得到我们想要的顺序
        如[13,1,3,83,8],对首位是1的进行处理,用String进行拼接得到131和113,比较大小,131>113交换位置
                       依次类推处理完整个数组



程序有点复杂,各位仁兄有更好的见解欢迎提出分享~
0 0
原创粉丝点击