题目描述
给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。
注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。
算法分析:先把整数转换成字符串,然后在比较a+b和b+a,如果a+b>=b+a,就把a排在b的前面,反之则把a排在b的后面。
/**
* @param {number[]} nums
* @return {string}
*/
var largestNumber = function(nums) {
for(let i = 0;i<nums.length;i++){
nums[i] = nums[i]+'';
}
var rest = '';
for (var i = 0; i < nums.length; i++) {
for (var j = 0; j < nums.length; j++) {
if ((nums[i]+nums[j])>(nums[j]+nums[i])) {
var temp = nums[j];
nums[j] = nums[i];
nums[i] = temp;
}
}
}
if(nums[0]=='0'){
return '0';
}
for(let i = 0;i<nums.length;i++){
rest+=nums[i];
}
return rest
};