分类
LeetCode刷题

LeetCode 第179题 Largest Number【排序】java

原题地址:https://leetcode.com/problems/largest-number/

题目:最大的数字

给定一组非0整数,排列成可以得到的最大的数字。

例一

输入: [10,2]
输出: "210"

例二

输入: [3,30,34,5,9]
输出: "9534330"

简单的看来,肯定是数值最大的数字在前面,最好,比如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

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

打赏

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据