面试题45. 把数组排成最小的数

1 数组排序,递增序列形式
2 Go排序主要就是比较当前两个数的大小 ,我们可以把要比较的两个数字拼接成一个整体, 看看谁大谁小 比如2和8 拼接就28和82。
package mainimport ("fmt""sort""strings")func minNumber(nums []int) string {sort.Slice(nums, func(i, j int) bool {return compareNumber(nums[i],nums[j])})var res strings.Builderfor i:=0;i<len(nums);i++{res.WriteString(fmt.Sprintf("%d",nums[i]))}return res.String()}func compareNumber(a,b int)bool{str1 := fmt.Sprintf("%d%d",a,b)str2 := fmt.Sprintf("%d%d",b,a)if str1<str2{return true}return false}func main() {fmt.Println(minNumber([]int{8,2}))fmt.Println(minNumber([]int{22,21}))fmt.Println(minNumber([]int{2,21}))//212fmt.Println(minNumber([]int{3,30,34}))fmt.Println(minNumber([]int{3,30,34,5,9}))fmt.Println(minNumber([]int{8247,824}))fmt.Println(minNumber([]int{824,938,1399,5607,6973,5703,9609,4398,8247}))}
