给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。
示例 1:
输入: [10,2]
输出: 210
示例 2:
输入: [3,30,34,5,9]
输出: 9534330
说明: 输出结果可能非常大,所以你需要返回一个字符串而不是整数。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/largest-number
/**
* @param {number[]} arr
* @return {string}
*/
//方法一 by caoyq0521
var getLargeNum = function (arr){
arr = arr.sort(
(a,b)=>{
var ab = `${a}${b}`;
var ba = `${b}${a}`;
return ba-ab;
}
)
return arr[0]?arr.join(''):'0';
}
//方法二
var getLargeNum = function (arr){
arr = arr.sort(
(a,b)=>{
var ab = a.toString()+b.toString();
var ba = b.toString()+a.toString();
return ba-ab;;
}
)
return arr[0]?arr.join(''):'0';
}
//方法三
var getLargeNum = function (arr){
arr = arr.map(String).sort(
(a,b)=>{
var ab = a.concat(b);
var ba = b.concat(a);
return ba-ab;;
}
)
return arr[0]?arr.join(''):'0';
}