题目:
难度:Middle
相关话题:排序
给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。
示例 1:
示例2:
输入: [3,30,34,5,9]
输出: 9534330
说明: 输出结果可能非常大,所以你需要返回一个字符串而不是整数。
思路:
对于两个数字a
,b
,只需要比较它们的字符串相加a+''+b
,b+''+a
‘,并且只能找它们从大到小排序。
/**
* @来源: Javascript中文网 - 前端进阶资源教程 https://www.javascriptc.com/
* @介绍:一个致力于帮助开发者用代码改变世界为使命的平台,每天都可以在这里找到技术世界的头条内容
* @param {number[]} nums
* @return {string}
*/
var largestNumber = function(nums) {
nums.sort((a,b)=>(b+''+a)-(a+''+b))
let res=''
for(let n of nums) res+=n
if(res==='' || res[0]==="0")return "0"
return res
};