每天劍指一點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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章