国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

【刷算法】把數組排成最小的數

SimpleTriangle / 3423人閱讀

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

題目描述

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

分析

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

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

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

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

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/96383.html

相關文章

發表評論

0條評論

SimpleTriangle

|高級講師

TA的文章

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