亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

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

SimpleTriangle / 3474人閱讀

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

題目描述

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

分析

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

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

代碼實現(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;
}

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

轉載請注明本文地址:http://www.ezyhdfw.cn/yun/96383.html

相關文章

發(fā)表評論

0條評論

SimpleTriangle

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<