用js刷剑指offer(把数组排成最小的数)

题目描述

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

思路

对vector容器内的数据进行排序,按照 将a和b转为string后
若 a+b<b+a a排在在前 的规则排序,
如 2 21 因为 212 < 221 所以 排序后为 21 2
to_string() 可以将int 转化为string

牛客网链接

js代码

function PrintMinNumber(numbers)
{
    // write code here
    let res = ''
    numbers.sort((a,b) => {
        let A = ''
        let B = ''
        A += String(a)
        A += String(b)
        B += String(b)
        B += String(a)
        return A - B
    })
    for (let i of numbers) res += i
    return res
}
posted @ 2019-10-23 14:44  1Shuan  阅读(163)  评论(0编辑  收藏  举报