剑指offer JavaScript 版(32)

本文介绍了一种算法,用于将数组中的所有数字重新排列,通过特定的排序方式,使得这些数字拼接成的数最小。该算法首先定义了一个自定义的排序函数,用于比较两个字符串连接后的大小,然后对数组进行排序,最后将排序后的数组元素拼接成一个字符串,即为所求的最小数。

把数组排成最小的数

题目描述

输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。

  • 将数字拼接成一个数,需要数字越大越排在低位,越小的数字排在高位,所以需要321的1排在尽量高的位置。
function PrintMinNumber(numbers)
{
    // write code here
    numbers.sort(function(s1,s2){
        const n1=`${s1}${s2}`
        const n2=`${s2}${s1}`
        return n1>n2
    })
    let min=''
    numbers.forEach((i)=>min+=i);
    return min;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值