題目描述
輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如輸入陣列,則列印出這三個數字能排成的最小數字為321323。
思路:
排序規則如下:
若ab > ba 則 a 大於 b,
若ab < ba 則 a 小於 b,
若ab = ba 則 a 等於 b;
根據上述規則,我們需要先將數字轉換成字串再進行比較,因為需要串起來進行比較。比較完之後,按順序輸出即可。
sort方法實現自定義方法排序
sort
(numbers.
begin()
, numbers.
end(
), cmp)
;
前面兩個引數分別表示比較區間的起始,cmp是自定義比較方法。
vs2013測試**
#include
#include
#include
#include
using
namespace std;
class
solution
return res;
}static
bool
cmp(
int a,
int b)};
void
main
(int argc,
char
**ar**)
stl程式設計很重要,最近一段時間打算把這塊內容整理下,記錄下。 劍指offer 把陣列排成最小的數
華電北風吹 天津大學認知計算與應用重點實驗室 日期 2015 10 5 題目描述 輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如輸入陣列,則列印出這三個數字能排成的最小數字為321323。解析 比大小即可,不過比的時候是從從左往右比。注意到字母長度有...
劍指offer 把陣列排成最小的數
輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如輸入陣列,則列印出這三個數字能排成的最小數字為321323。分析 將int型的陣列轉化為string型的陣列,再將string型的陣列排序,排序規則依據比較兩個string變數相加後的大小 注意這個cmp...
劍指offer 把陣列排成最小的數
題目 輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如輸入陣列,則列印出這三個數字能排成的最小數字為321323。分析 題目要求比較整數陣列組成後的數的大小,在int及long中來處理很容易超出範圍,實際上大數問題一般放在字串中來處理。我們把陣列元素兩...