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