这道题好像原来第一遍做的时候没有做,也不知道是忘记了还是什么原因,第二次重刷剑指offer时才发现没做,所以也就没有golang版本了,直接就是java版本的
要想把数组排成最小的数,我们先对对数组中的数进行一个转换也就是String.valueOf()放进一个list中,然后自己去定义比较函数,两个字符串s1,s2比较s1+s2和s2+s1的大小,出现s1+s2>s2+s1的情况跟则进行交换,也就是让前面的和最小的出现在前面,不过由于太久没有使用自定义比较方法了,这里还有点陌生,其实就是这样s.sort((i,j)->(i+j).compareTo(j+i)),也就是说按照下列方式进行排序,而compareTo的效果就是前面的值比后面的大时返回正数,相等返回0,小于返回负数,然后sort函数就是当返回值大于1的进行一次排序。
代码如下: