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

2021-08-21 09:34:45 字數 583 閱讀 9993

題目描述

輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如輸入陣列,則列印出這三個數字能排成的最小數字為321323。

思路分析

對陣列中每兩個元素進行組合,比較,確認出最小的排列。

比如,3與32組合,332>323,所以交換3和32的位置,

3與321組合,3321>3213,所以交換3和321的位置,餘下的同理

注意,此題返回值為string,最後還要轉換型別

**

public string printminnumber(int  numbers) 

}} for (int i = 0; i < numbers.length; i++)

return str;

}

結果

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

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

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

題目描述 輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如輸入陣列,則列印出這三個數字能排成的最小數字為321323。實現如下 要將所有元素組合成乙個最小的數 那麼組合的相鄰元素之間都是num1num2的形式 所以使用庫函式的sort將各個元素以str...

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

輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如輸入陣列,則列印出這三個數字能排成的最小數字為321323。當然這個題可以用暴力求解,那麼複雜度會比較高,在這裡利用stl演算法sort可以自己定義排序的規則,這樣將兩個數拼接之後的數進行比較,比較完之後...