問(wèn)題:
方法:
先把數(shù)字按首位數(shù)字歸入不同列表,然后按首位數(shù)字從大到小拼接,如果首位數(shù)字相同,則比較兩個(gè)數(shù)字不同先后順序拼接的大小,最后如果結(jié)果的首位數(shù)字為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()
}
}
有問(wèn)題隨時(shí)溝通
