輸入一個正整數數組,把數組裏所有數字拼接起來排成一個數,打印能拼接處的所有數字中最小的一個。例如,輸入數組{3,32,321},則打印出這3個數字能排成的最小數字321323。
思路:暴力全排列基本屬於不可考慮的情況,O(n!)。那麼考慮兩個數字拼成一個後再跟下一個拼,那麼也能得到最小數字,這樣子就能得到O(nlogn),好太多了這效率。還要注意一點,假如數組有點大,那麼一個Int是收不完的,最後要轉成string。代碼就省略了,相信有這思路,再思考一下就能做出來了。
輸入一個正整數數組,把數組裏所有數字拼接起來排成一個數,打印能拼接處的所有數字中最小的一個。例如,輸入數組{3,32,321},則打印出這3個數字能排成的最小數字321323。
思路:暴力全排列基本屬於不可考慮的情況,O(n!)。那麼考慮兩個數字拼成一個後再跟下一個拼,那麼也能得到最小數字,這樣子就能得到O(nlogn),好太多了這效率。還要注意一點,假如數組有點大,那麼一個Int是收不完的,最後要轉成string。代碼就省略了,相信有這思路,再思考一下就能做出來了。