每天剑指一点offer之JavaScript数组排成最小数

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

核心思路:

ab>ba 则 a>b

function PrintMinNumber(numbers)
{
    numbers.sort(function(n1, n2){    //用于对数组的元素进行排序
        if(n1 + '' + n2 > n2 + '' + n1){
            return 1;
        }else if(n1 + '' + n2 < n2 + '' + n1){
            return -1;
        }else{
            return 0;
        }
    });
    return numbers.join('');
}
function PrintMinNumber(numbers)
{
    // write code here
    numbers.sort(function(a,b){
        var c1 = `${a}${b}`;
        var c2 = `${b}${a}`;
        return c1 > c2;
    });
    var min = '';
    numbers.forEach((i) => min += i);
    return min;
}
发布了158 篇原创文章 · 获赞 44 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_43277404/article/details/104621454