輸入乙個非負整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。
示例1:
輸入: [10,2]
輸出: "102"
示例2:
輸入: [3,30,34,5,9]
輸出: "3033459"
根據以上規則,套用任何排序方法對nums執行排序即可。
演算法流程:
初始化: 字串列表 strs ,儲存各數字的字串格式;
列表排序: 應用以上 「排序判斷規則」 ,對 strs 執行排序;
返回值: 拼接 strs 中的所有字串,並返回。
class
solution
arrays.
sort
(strs,
(x,y)
->
(x+y)
.compareto
(y+x));
stringbuilder sb =
newstringbuilder()
;for
(int i =
0;i < strs.length;i++
)return sb.
tostring();}}
複雜度分析: 45 把陣列排成最小的數
輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如 輸入陣列,則列印出這三個數能排成的最小的數字321323.剛開始會想到最麻煩的方法就是全排列,然後再逐一比較找到最小的數,很明顯效率是非常低的,而且存在潛在的問題 大數問題。所以開始考慮用字串代替數字來...
45 把陣列排成最小的數
輸入乙個非負整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。示例 1 輸入 10,2 輸出 102 示例 2 輸入 3,30,34,5,9 輸出 3033459 0 nums.length 100說明 輸出結果可能非常大,所以你需要返回乙個字串而不是整數 拼接起來的...
劍指offer45題 把陣列排成最小的數
輸入乙個非負整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。示例 1 輸入 10,2 輸出 102 示例 2 輸入 3,30,34,5,9 輸出 3033459 0 nums.length 100 首先x 3 y 30 那麼有兩種組合 x y 330 y x 303...