題目描述
輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如輸入陣列,則列印出這三個數字能排成的最小數字為321323。
class
solution
sort
(str.
begin()
,str.
end(),
(string a,string b));
string ret;
for(string s : str) ret+
= s;
return ret;}}
;
思路:
先將整形陣列轉變成字串陣列,再用sort和lambda表示式進行排序,最後取出合併返回。
仿函式
struct com };
sort
(str.
begin()
, str.
end(),
com())
;// com()為臨時物件
lambda表示式
// 1. 匿名lambda表示式
sort
(str.
begin()
, str.
end(),
(string a, string b));
// 2.具名lambda表示式
auto lam =
(string a, string b)
;sort
(str.
begin()
, str.
end(
), lam)
;;
函式指標
bool
static
com(string a, string b)
//加static的原因:類成員函式有隱藏的this指標,static 可以去this指標
sort
(str.
begin()
, str.
end(
), com)
;
JZ32 把陣列排成最小的數
題目描述 輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如輸入陣列,則列印出這三個數字能排成的最小數字為321323。題解 給定乙個陣列,我們找出他可能的排列組合,且是所有可能排列組合裡最小的數字,所以我們需要額外加上一步來找出我們獲得的所有排列組合裡...
劍指Offer (32)把陣列排成最小的數
題目描述 輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如輸入陣列,則列印出這三個數字能排成的最小數字為321323。實現如下 要將所有元素組合成乙個最小的數 那麼組合的相鄰元素之間都是num1num2的形式 所以使用庫函式的sort將各個元素以str...
劍指offer系列(32) 把陣列排成最小的數
題目描述 輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如輸入陣列,則列印出這三個數字能排成的最小數字為321323。思路分析 對陣列中每兩個元素進行組合,比較,確認出最小的排列。比如,3與32組合,332 323,所以交換3和32的位置,3與321組...