给定一个长度为n的数组nums,数组由一些非负整数组成,现需要将他们进行排列并拼接,每个数不可拆分,使得最后的结果最大,返回值需要是string类型,否则可能会溢出。
数据范围:,
进阶:时间复杂度 ,空间复杂度:
[30,1]
"301"
[2,20,23,4,8]
"8423220"
[2]
"2"
[10]
"10"
输出结果可能非常大,所以你需要返回一个字符串而不是整数。
for (var i = 0; i < nums.length; i++) { for (var j = 0; j < nums.length - i; j++){ str1 = String(nums[j]) + String(nums[j+1]) str2 = String(nums[j+1]) + String(nums[j]) if (Number(str1) < Number(str2)) { var javl = nums[j] nums[j] = nums[j+1] nums[j+1] = javl } else if (Number(str1) === 0 && Number(str2) === 0) { nums = [0] } } } var str = nums.join('') return str