mysql常用語句即函式
阿新 • • 發佈:2021-01-14
劍指 Offer 45. 把陣列排成最小的數
輸入一個非負整數陣列,把數組裡所有數字拼接起來排成一個數,列印能拼接出的所有數字中最小的一個。
示例 1:
輸入: [10,2]
輸出: "102"
示例 2:輸入: [3,30,34,5,9]
輸出: "3033459"提示:
0 < nums.length <= 100
說明:輸出結果可能非常大,所以你需要返回一個字串而不是整數
拼接起來的數字可能會有前導 0,最後結果不需要去掉前導 0
import "strconv" func minNumber(nums []int) string { str := make([]string, len(nums)) for i := 0; i < len(str); i++ { str[i] = strconv.Itoa(nums[i]) } quickSort(str, 0, len(nums)-1) ans := "" for _, v := range str { ans += string(v) } return ans } func quickSort(str []string, left, right int) { if left >= right {return} x, i, j := str[left], left-1, right+1 for i < j { i += 1 for str[i] + x < x + str[i] { i += 1 } j -= 1 for str[j] + x > x + str[j] { j -= 1 } if i < j { str[i], str[j] = str[j], str[i] } } quickSort(str, left, j) quickSort(str, j+1, right) }