劍指Offer之面試題33 把陣列排成最小的數

2021-07-25 21:22:38 字數 883 閱讀 4930

所有**均通過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!個排列。...