时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M 热度指数:463806
本题知识点: 数组
题目描述
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
示例1
输入
[3,32,321]
返回值
“321323”
思路:
两两拼接后比较,大就反过来,然后继续拼接比较
function PrintMinNumber(numbers) {
if (numbers.length === 0) return ''
for (let i = 0; i < numbers.length; i++) {
for (let j = i + 1; j < numbers.length; j++) {
let s1 = numbers[i] + '' + numbers[j]
let s2 = numbers[j] + '' + numbers[i]
if (s1 > s2) {
let temp = numbers[i]
numbers[i] = numbers[j]
numbers[j] = temp
}
}
}
let res = ''
numbers.forEach(item => {
res += item
})
return res
}
答案参考自:Leoncon