输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
将数组成员两两比较 ,两个数的其中一个在前边时拼接后更小的话,将那个数放在前边。
也就是进行一次排序, 123 + 32 = 12332 32+123 = 32123 12332<32123 将123放在前边
let arr = [3,5,1,4,2]
// let arr = [3,32,321]
function MinNumber(n1, n2) {
let num1 = `${n1}${n2}`
let num2 = `${n2}${n1}`
if(num1> num2){
return true
}else {
return false
}
}
function PrintMinNumber(numbers) {
for (let i = 0; i < numbers.length; i++) {
for (let j = i + 1; j < numbers.length; j++) {
if (MinNumber(numbers[i], numbers[j])) {
[numbers[j], numbers[i]] = [numbers[i], numbers[j]]
}
}
}
let num = "";
for (let i in numbers){
num+=numbers[i]
}
return num
}
console.log(PrintMinNumber(arr)); 
京公网安备 11010502036488号