把数组排成最小的数

把数组排成最小的数

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));
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-09 12:02
ssob上原来真有BOSS啊
硫蛋蛋:这种也是打工的,只不是是给写字楼房东打工
点赞 评论 收藏
分享
06-26 15:33
青岛工学院 Java
积极的秋田犬要冲国企:他现在邀请我明天面试
点赞 评论 收藏
分享
06-12 16:00
天津大学 Java
牛客30236098...:腾讯坏事做尽,终面挂是最破防的 上次被挂了后我连简历都不刷了
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务