劍指 Offer 45 把陣列排成最小的數

2021-10-12 15:22:54 字數 725 閱讀 7372

故心故心故心故心小故衝啊

示例 1:

輸入: [10,2]

輸出: 「102」

示例 2:

輸入: [3,30,34,5,9]

輸出: 「3033459」

0 < nums.length <= 100

說明:輸出結果可能非常大,所以你需要返回乙個字串而不是整數

拼接起來的數字可能會有前導 0,最後結果不需要去掉前導 0

解釋:如果』a+b』

//如果呼叫該方法時沒有使用引數,將按字母順序對陣列中的元素進行排序,說得更精確點,是按照字元編碼的順序進行排序。要實現這一點,首先應把陣列的元素都轉換成字串(如有必要),以便進行比較。

//定義新的排序規則--使用函式

//比較函式應該具有兩個引數 a 和 b,其返回值如下

//若 a 小於 b,在排序後的陣列中 a 應該出現在 b 之前,則返回乙個小於 0 的值。

//若 a 等於 b,則返回 0。

//若 a 大於 b,則返回乙個大於 0 的值。

//join()是可以讓陣列的值拼接成字串,(括號為通過如何連線)

//split()方法可以讓字串通過(啥)的方式分割成陣列

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

輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如輸入陣列,則列印出這三個數字能排成的最小數字為321323。思路1 根據全排列,將三個數字的全排列全寫出來,然後比較大小,這種辦法在數比較多時,效率不高。思路2 先比較前兩個數字m和n排列的大小 mn和n...

劍指Offer 45 把陣列排成最小的數

輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例 輸入陣列,列印321323。排列出所有的組合,比較出最小的,輸出。時間複雜度 o n 空間複雜度 o n 考察最小組合的形式,遵從下面的規律 1 首位小的靠前 2 首位相同,次位小的靠前 3 位數少的靠前...

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

輸入乙個正整數陣列,把陣列裡所有的數拼接為乙個數,列印出能拼接出的所有數字中最小的乙個。比如輸入 輸出 321323.這道題其實是希望我們能找到乙個排序規則,陣列根據這個排序規則排列後能排成乙個最小的數。要確定排序規則,就要比較兩個數字,也就是給出兩個數字m n,我們需要確定乙個規則判斷m和n哪個應...