劍指offer系列25 把陣列排成最小的數

2022-04-03 02:22:19 字數 959 閱讀 2567

這個數我拿到的第乙個想法是吧數字變成字串,然後用字串比較。看了答案竟然用排序的函式做,排序的函式sort真的是萬能的。還有在比較兩個字串的大小的時候,我的思路是一直從字串裡拿元素比較其大小,答案的做法是直接比較字串,利用了string 的特性。還有乙個問題就是注釋裡寫的,這裡又沒有靜態資料成員,為什麼要定義靜態成員函式?如果在這裡用,唯一的解釋是靜態成員函式不屬於任何的物件,它屬於類。

1 #include2 #include

3 #include 4 #include 5

//#include

6using

namespace

std;

7class

solution

24*/

25 vectorst;

26for (int i = 0; i < numbers.size(); i++)

2731

sort(st.begin(), st.end(), comparetwo);

3233

for (int i = 0; i < st.size(); i++)

3437

return

res;

3839}40

/*41

bool comparetwo(string a, string b)

4257}58

return true;59}

60*/

61static

bool comparetwo(string a, string b)//

開始沒有加static,報的是sort函式那一行的錯誤,為什麼這麼要加static?

6271}72

};73

intmain()74;

77 cout << so.printminnumber(test) <78return0;

79 }

劍指offer系列 把陣列排成最小的數

題目描述 輸入乙個正整數陣列,把陣列中所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。示例 輸入 輸出 321323 分析 首先把陣列中的每個數字轉換成字串的形式,然後對所有字串進行排序 排序的規則是 a b b a,則a應該在b的前面,最後再將所有的字串拼接起來即為最終的結果 為了...

劍指offer系列(32) 把陣列排成最小的數

題目描述 輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如輸入陣列,則列印出這三個數字能排成的最小數字為321323。思路分析 對陣列中每兩個元素進行組合,比較,確認出最小的排列。比如,3與32組合,332 323,所以交換3和32的位置,3與321組...

牛客 劍指offer系列題解 把陣列排成最小的數

記錄刷題的過程。牛客和力扣中都有相關題目,這裡以牛客的題目描述為主。該系列預設採用python語言。1 問題描述 輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如輸入陣列,則列印出這三個數字能排成的最小數字為321323。2 資料結構 陣列,字串,排序...