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

把数组排成最小的数

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()
    }
}


全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务