NOTE

最大数

重新排列非负整数,使其拼接成最大的整数。

Data Structures & Algorithms创建于 更新于 约 1 分钟读完historical

这是历史学习笔记,可能存在过时或不完整的理解。

1. 题目描述

给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数

2. 思路

3. 实现

func largestNumber(nums []int) string {
    strs := make([]string, 0, len(nums))
    for _, num := range nums {
        strs = append(strs, strconv.Itoa(num))
    }
    sort.Slice(strs, func(i, j int) bool {
        a := strs[i] + strs[j]
        b := strs[j] + strs[i]
        return a > b
    })
    if strs[0] == "0" {return "0"}
    var res string
    for _, str := range strs {
        res += str
    }
    return res
}

4. 参考

讨论

使用 GitHub 账号参与讨论,评论会保存在 GitHub Issues 中。在 GitHub 查看