45 把陣列排成最小的數

2021-10-02 12:45:09 字數 545 閱讀 3418

​ 輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如:輸入陣列,則列印出這三個數能排成的最小的數字321323.

​ 剛開始會想到最麻煩的方法就是全排列,然後再逐一比較找到最小的數,很明顯效率是非常低的,而且存在潛在的問題:大數問題。所以開始考慮用字串代替數字來進行處理,再由題意深度分析,題目中所求的陣列組成的最小的數,即將陣列按字典排序,於是可以想到通過arrays的sort方法,重寫比較器來實現。**如下:

public string printminnumber

(int

numbers)

arrays.

sort

(strs,

newcomparator

()})

; stringbuffer sb=

newstringbuffer()

;for

(string str:strs)

return sb.

tostring()

;}

45 把陣列排成最小的數

輸入乙個非負整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。示例 1 輸入 10,2 輸出 102 示例 2 輸入 3,30,34,5,9 輸出 3033459 0 nums.length 100說明 輸出結果可能非常大,所以你需要返回乙個字串而不是整數 拼接起來的...

排序 45題 把陣列排成最小的數

輸入乙個非負整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。示例1 輸入 10,2 輸出 102 示例2 輸入 3,30,34,5,9 輸出 3033459 根據以上規則,套用任何排序方法對nums執行排序即可。演算法流程 初始化 字串列表 strs 儲存各數字的字...

把陣列排成最小的數

分析 這是09 年6這道題其實是希望我們能找到乙個排序規則,根據這個規則排出來的陣列能排成乙個最小的數字。要確定排序規則,就得比較兩個數字,也就是給出兩個數字m 和n,我們需要確定乙個規則m 和n哪個更大,而不是僅僅只是比較這兩個數字的數值哪個更大。根據題目的要求,兩個數字m 和n排成的數字mn 和...