把数组排成最小的数

把数组排成最小的数

http://www.nowcoder.com/questionTerminal/8fecd3f8ba334add803bf2a06af1b993

输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。

将数组成员两两比较 ,两个数的其中一个在前边时拼接后更小的话,将那个数放在前边。
也就是进行一次排序, 123 + 32 = 12332 32+123 = 32123 12332<32123 将123放在前边

let arr = [3,5,1,4,2]
// let arr = [3,32,321]
function MinNumber(n1, n2) {
    let num1 = `${n1}${n2}`
    let num2 = `${n2}${n1}`
    if(num1> num2){
        return true
    }else {
        return false
    }
}

function PrintMinNumber(numbers) {
    for (let i = 0; i < numbers.length; i++) {
        for (let j = i + 1; j < numbers.length; j++) {
            if (MinNumber(numbers[i], numbers[j])) {
                [numbers[j], numbers[i]] = [numbers[i], numbers[j]]

            }
        }
    }
    let num = "";
    for (let i in numbers){
        num+=numbers[i]
    }
    return num
}

console.log(PrintMinNumber(arr));
全部评论

相关推荐

贺兰星辰:不要漏个人信息,除了简历模板不太好以外你这个个人简介是不是太夸大了...
点赞 评论 收藏
分享
11-18 09:44
Java
小白也想要offer:简历别放洋屁,搞不还还放错了,当然你投外企除外,以上纯属个人观点
点赞 评论 收藏
分享
小红书 后端选手 n*16*1.18+签字费期权
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务