成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

【刷算法】把數(shù)組排成最小的數(shù)

SimpleTriangle / 3430人閱讀

摘要:題目描述輸入一個(gè)正整數(shù)數(shù)組,把數(shù)組里所有數(shù)字拼接起來排成一個(gè)數(shù),打印能拼接出的所有數(shù)字中最小的一個(gè)。例如輸入數(shù)組,,,則打印出這三個(gè)數(shù)字能排成的最小數(shù)字為。

題目描述

輸入一個(gè)正整數(shù)數(shù)組,把數(shù)組里所有數(shù)字拼接起來排成一個(gè)數(shù),打印能拼接出的所有數(shù)字中最小的一個(gè)。例如輸入數(shù)組{3,32,321},則打印出這三個(gè)數(shù)字能排成的最小數(shù)字為321323。

分析

把數(shù)組按照可以達(dá)到最終最小數(shù)字的順序重新排列一遍,但是有一個(gè)問題,排序的衡量標(biāo)準(zhǔn)是什么,也就是說兩個(gè)數(shù)字怎么判斷誰前誰后?

例如[3,5,32,321],3和5很好判斷,肯定是3在前最后的排成的數(shù)字比較小,但是5和32呢?所以,排序的衡量標(biāo)準(zhǔn)應(yīng)該是比較這兩個(gè)數(shù)字排成的數(shù)字的大小,例如5和32,可以排成532和325,325<532,所以32得排在前面。

代碼實(shí)現(xiàn)
function PrintMinNumber(numbers)
{
    if(numbers.length === 0)
        return "";
    if(numbers.length === 1)
        return numbers[0];
    
    numbers.sort(function(a,b) {
        var astr = a.toString(), bstr = b.toString();
        
        var ab = +(astr+bstr), ba = +(bstr+astr);
        return ab - ba;
    })
    
    var res = "";
    for(var i = 0;i < numbers.length;i++){
        res += numbers[i];
    }
    
    return +res;
}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/96383.html

相關(guān)文章

發(fā)表評論

0條評論

SimpleTriangle

|高級講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<