题目描述
给定一组非负整数 nums,重新排列它们每个数字组成的字符串,返回其中最大的整数。
示例
输入: [10,2]
输出: "210"
输入: [3,30,34,5,9]
输出: "9534330"
解题思路
将数组中的元素转换为字符串,然后排序,最后依次拼接起来即可。
代码实现
var largestNumber = function (nums) {
const res = nums
.map(String)
.sort((a, b) => {
return a.concat(b) > b.concat(a) ? -1 : 1;
})
.join('');
return res.charAt(0) === '0' ? '0' : res;
};
时间/空间复杂度
-
时间复杂度:。其中 是数组的长度,主要是因为需要对字符串进行排序。
-
空间复杂度:。需要用一个字符串数组来存储该数列中每一个元素对应的字符串。