179. 最大数
给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。
示例 1:
输入: [10,2]
输出: 210
示例 2:
输入: [3,30,34,5,9]
输出: 9534330
说明: 输出结果可能非常大,所以你需要返回一个字符串而不是整数。
Code
import (
"sort"
"strconv"
)
type ans []string
func (self ans) Len() int {
return len(self)
}
func (self ans) Swap(i, j int) {
self[i], self[j] = self[j], self[i]
}
func (self ans) Less(i, j int) bool {
a, _ := strconv.Atoi(self[i] + self[j])
b, _ := strconv.Atoi(self[j] + self[i])
return a > b
}
func largestNumber(nums []int) string {
var a ans
a = make([]string, len(nums))
for i, v := range nums {
a[i] = strconv.Itoa(v)
}
sort.Sort(a)
res := ""
if a[0] == "0" {
return "0"
}
for _, v := range a {
res += v
}
return res
}