题目

输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
在这里插入图片描述

思路

这个题可以理解为拼接字符串。题目中例子说输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。题目的三个数字拼接起来可以是332321,332132,323213,323321,321332,321323.一共六种情况,最小的是321323.所以我们可以先将数字转换成字符串再进行比较,然后比较完按顺序进行输出就可以了。

代码

1
2
3
4
5
6
7
8
9
10
11
12
function PrintMinNumber(numbers)
{
// write code here
numbers.sort(function(s1,s2){
const c1 = `${s1}${s2}`;
const c2 = `${s2}${s1}`;
return c1 > c2;
});
let min = '';
numbers.forEach((i) => min += i);
return min;
}


本站访问量为: 次 。