原题地址: https://leetcode.com/problems/largest-number/
给定一组非0整数,排列成可以得到的最大的数字。
例一
<strong>输入:</strong> <code>[10,2]</code> <strong>输出:</strong> "<code>210"</code>
例二
<strong>输入:</strong> <code>[3,30,34,5,9]</code> <strong>输出:</strong> "<code>9534330"</code>
简单的看来,肯定是数值最大的数字在前面,最好,比如9肯定在3前面。但是输入的不是一位数字,也有例外,5小于34,但是5放在前面肯定更大,534大于345。或者34小于330,但是,34330大于33034。
所以,我们比较两个数字的时候,可以构建两个不同排序的结果,比如34和330比例,我们需要给34补充三个0,变成34000+330,而另外一个排列就是330加上2个0,变成33000+34。
我们构建这么一个特殊的比较函数,问题就解决了。
nTen其实就是补n个0,很简单:
代码地址: https://github.com/tinyfool/leetcode/tree/master/src/p0179
其他排序相关题目,参照排序主题。