美文网首页
LeetCode之Largest Number(Kotlin)

LeetCode之Largest Number(Kotlin)

作者: 糕冷羊 | 来源:发表于2022-01-18 19:17 被阅读0次

问题:



方法:
先把数字按首位数字归入不同列表,然后按首位数字从大到小拼接,如果首位数字相同,则比较两个数字不同先后顺序拼接的大小,最后如果结果的首位数字为0,则直接输出0

package com.eric.leetcode

class LargestNumber {
    fun largestNumber(nums: IntArray): String {
        val sb = StringBuilder()
        val list = Array<MutableList<String>>(10) {
            mutableListOf()
        }
        for (num in nums) {
            val real = num.toString().first().toString().toInt()
            list[real].add(num.toString())
        }

        for (arr in list.reversed()) {
            if (arr.isNotEmpty()) {
                arr.sortedWith(Comparator { o1, o2 -> (o2 + o1).compareTo(o1 + o2) }).forEachIndexed { index, str ->
                    sb.append(str)
                }
            }
        }

        if (sb.first() == '0') {
            return "0"
        }
        return sb.toString()
    }
}

有问题随时沟通

具体代码实现可以参考Github

相关文章

网友评论

      本文标题:LeetCode之Largest Number(Kotlin)

      本文链接:https://www.haomeiwen.com/subject/iutlhrtx.html