转载

LeetCode 第179题 Largest Number【排序】java

原题地址: 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。

我们构建这么一个特殊的比较函数,问题就解决了。

LeetCode 第179题 Largest Number【排序】java

nTen其实就是补n个0,很简单:

LeetCode 第179题 Largest Number【排序】java

代码地址: https://github.com/tinyfool/leetcode/tree/master/src/p0179

其他排序相关题目,参照排序主题。

原文  http://codechina.org/2019/07/leetcode-179-largest-number-sort-java/
正文到此结束
Loading...