题解 | #把数组排成最小的数#

把数组排成最小的数

https://www.nowcoder.com/practice/8fecd3f8ba334add803bf2a06af1b993

kotlin
使用最小堆
import java.util.PriorityQueue
object Solution {
    /**
    * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
    * 
        * @param numbers int整型一维数组 
        * @return string字符串
    */
    fun PrintMinNumber(numbers: IntArray): String  {
        //最小堆,因为要结果最小,则把拼接字符串最小的放到堆顶即可
        val queue = PriorityQueue<String>() { s1, s2 ->  
            //字符串拼接之后比较
            (s1 + s2).compareTo(s2 + s1)
        }
        numbers.forEach { 
            queue.offer(it.toString())
        }
        val stringBuilder = StringBuilder()
        while(queue.isNotEmpty()) stringBuilder.append(queue.poll())
        return stringBuilder.toString()
    }
}


全部评论

相关推荐

我是没经验的毕业生,这啥情况啊会不会是hr在刷kpi
JamesGosli...:字节boss属于是群发了,我都快入职字节了,其他部门还在和我boss打招呼
点赞 评论 收藏
分享
自学java狠狠赚一...:骗你点star的,港卵公司,记得把star收回去
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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