题解 | #把数组排成最小的数#
把数组排成最小的数
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() } }