劍指offer 面試題33:把數組排成最小的數

題目:
輸入一個正整數數組,把數組里所有數字拼接起來排成一個數,打印能拼接處的所有數字中最小的一個。例如輸入數組{3,32,321},則打印出這3個數字能排成的最小數字321323

解法:
找到一個排序規則,數組根據這個規則排序之后能排成一個最小的數字。要確定排序規則,就要比較兩個數字,也就是給出兩個數字m和n,我們需要確定一個規則判斷m和n哪個應該排在前面,而不是僅僅比較這兩個數字的值哪個更大。
兩個數字m和n能拼接成mn和nm,比較mn和nm的大小。(字符串比較)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 最小的k個數 求子數組的最大和 把數組排成最小的數字 1.最小的k個數 問題描述:輸入n個數字,找到數組中最小的k...
    zero_sr閱讀 456評論 0 1
  • 第1章 面試的流程 編程時應注意的三點: 思考清楚再開始編碼; 良好的代碼命名和縮進對齊; 能夠單元測試; 現場面...
    codingXue閱讀 497評論 5 0
  • 把數組排成最小的數 題目描述 輸入一個正整數數組,把數組里所有數字拼接起來排成一個數,打印能拼接出的所有數字中最小...
    echoVic閱讀 592評論 1 1
  • 本文出自 Eddy Wiki ,轉載請注明出處:http://eddy.wiki/interview-code.h...
    eddy_wiki閱讀 9,364評論 0 30
  • 在我意想千千萬萬次下,這個可以和我同享楓哥哥的人真的出現了,我是震撼又木納、即驚喜又害怕的感覺嗎?揣測不了...
    我是我的天涯閱讀 167評論 1 2