(暴力搜尋) o(n
!∗n)
o(n!*n)
o(n!∗n
) 就是直接暴力搜所有排列的情況
複雜度分析:先不考慮是否有重複的情況每個位置選數就是個全排列,中規模的資料就一定超時
**省略
(貪心) o(n
2log
n)o(n^2logn)
o(n2lo
gn)
利用排序的思路將相鄰兩個數字組合,採取較小的那種組合方式進行排序,因為:如果a複雜度分析:排序複雜度o(n
logn
)o(nlogn)
o(nlog
n),每次比較位數o(n
)o(n)
o(n)
,數字轉字串o(n
)o(n)
o(n)
,綜合o(n
2log
n+n)
o(n^2logn+n)
o(n2lo
gn+n
) **
class
solution
reverse
(res.
begin()
, res.
end())
;return res;
}static
bool mycompare (string sa, string sb)
string printminnumber
(vector<
int>
& nums)
sort
(change.
begin()
, change.
end(
), mycompare)
; res.
erase
(res.
begin()
, res.
end())
;for
(unsigned
int i =
0; i < change.
size()
; i++
)return res;}}
;
劍指offer 把陣列排成最小的數
華電北風吹 天津大學認知計算與應用重點實驗室 日期 2015 10 5 題目描述 輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如輸入陣列,則列印出這三個數字能排成的最小數字為321323。解析 比大小即可,不過比的時候是從從左往右比。注意到字母長度有...
劍指offer 把陣列排成最小的數
輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如輸入陣列,則列印出這三個數字能排成的最小數字為321323。分析 將int型的陣列轉化為string型的陣列,再將string型的陣列排序,排序規則依據比較兩個string變數相加後的大小 注意這個cmp...
劍指offer 把陣列排成最小的數
題目 輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如輸入陣列,則列印出這三個數字能排成的最小數字為321323。分析 題目要求比較整數陣列組成後的數的大小,在int及long中來處理很容易超出範圍,實際上大數問題一般放在字串中來處理。我們把陣列元素兩...