所有**均通過g++編譯器
測試,僅為練手紀錄。 //
面試題33:
把陣列排成最小的數
//題目:輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出所有數字中最小的乙個。
//
例如輸入陣列{3,
32,321},則列印出這
3個數字能排成的最小數字
321323.
//面試題33:把陣列排成最小的數
//題目:輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出所有數字中最小的乙個。
// 例如輸入陣列{3,32,321},則列印出這3個數字能排成的最小數字321323.
bool strcompare(string &strelem1, string &strelem2)
string getminnum(int *pinum,int nsize)
vectorvecnum(nsize);
for(int i = 0; i < nsize; ++i)
sort(vecnum.begin(), vecnum.end(), strcompare);
string strmin;
for(int i = 0; i < nsize; ++i)
return strmin;
}void testgetminnum()
; int nvalsize = sizeof(arrval)/sizeof(int);
loginfo("minnum:%s",getminnum(arrval,nvalsize).c_str());
}
zhaipillary
2017-01-07
劍指Offer 面試題33 把陣列排成最小的數
把陣列排成最小的數 輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接處的所有數字中的最小的乙個。例如 輸入陣列,則列印出這3個數字能排成的最小數字321323 思路 我們應該對於給出的兩個數字m和n,需要確定規則m和n哪個應該排序在前面,而不是比誰大誰小。m和n能拼成mn或者nm,...
劍指offer 面試題33 把陣列排成最小的數
題目 輸入乙個正整數陣列,把陣列裡面的所有數字連線起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如輸入陣列,則列印這三個數字能排成的最小數字321323。基本思想 o nlogn 兩個數字m和n能拼接數字mn和nm。如果mn 如對321和32,排序為32132 32321,所以321 32 ...
j劍指offer面試題 33 把陣列排成最小的數
輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如輸入陣列,則列印出這三個數字能排成的最小數字為321323。思路 可以求出這個陣列中所有數字的全排列,然後把每個排列拼起來,最後求出拼起來的數字的最小值。根絕陣列排列組合的思想,n個數字總共有n!個排列。...