劍指offer——把陣列排成最小的數C++
全部轉為字串存入陣列,對其進行sort即可。
主要是cmp函式比較難寫
sort中的比較函式compare要宣告為靜態成員函式或全域性函式,不能作為普通成員函式,否則會報錯。因為:非靜態成員函式是依賴於具體物件的,而std::sort這類函式是全域性的,因此無法再sort中呼叫非靜態成員函式。靜態成員函式或者全域性函式是不依賴於具體物件的,可以獨立訪問,無須建立任何物件例項就可以訪問。同時靜態成員函式不可以呼叫類的非靜態成員。
C++中的字串可以直接比較大小,cmp比較的結果,決定了排序方式(升序或者降序)是對引數起作用,不是對A和B起作用
其實返回的是true or false,如果為真兩個數不變,如果為假則交換。
因為a本來在b前面,如果a+b<b+a,那麼證明a比b小,所以返回真,不讓其交換
http://www.manongjc.com/article/79574.html
class Solution {
public:
static bool cmp(string a, string b){
string s1=a+b,s2=b+a;
//這樣就會把加起來結果小的放在前面,改為大於就是升序排列
//如果是return a<b就把小的放前面,return a>b就把大的放前面
//return s1<s2就是把a和b誰當前面組成的數字小,誰就放前面
return s1 < s2;
}
string PrintMinNumber(vector<int> numbers) {
//自定義cmp,將陣列中的所有數字轉化為string進行排序
//將小的排在最前面,如何比較是個問題
//怎麼樣才算小?當然是作為前面的數字來說產生的結果小才是真的小
if(numbers.size() == 0) return "";
vector<string> s;
for(int i = 0; i < numbers.size(); ++i){
s.push_back(to_string(numbers[i]));
}
sort(s.begin(),s.end(),cmp);
string res = "";
for(int i = 0; i < s.size(); ++i){
res += s[i];
}
return res;
}
};
相關文章
- 劍指Offer-34-把陣列排成最小的數陣列
- 力扣 - 劍指 Offer 45. 把陣列排成最小的數力扣陣列
- 劍指Offer-把陣列中的數排成一個最小的數陣列
- JZ-032-把陣列排成最小的數陣列
- 劍指offer:旋轉陣列的最小數字陣列
- 劍指offer 旋轉陣列的最小數字陣列
- 劍指offer-轉陣列的最小數字-php陣列PHP
- 【劍指offer】7.旋轉陣列的最小數字陣列
- 【劍指 Offer】11. 旋轉陣列的最小數字陣列
- 劍指 Offer 11. 旋轉陣列的最小數字陣列
- (python版)《劍指Offer》JZ06:旋轉陣列的最小數字Python陣列
- 劍指offer——陣列中的逆序對C++(75%)陣列C++
- 《劍指Offer》- 連續子陣列的最大和或最小和陣列
- 劍指 offer(1) -- 陣列篇陣列
- 劍指offer——把字串轉換成整數C++字串C++
- 劍指Offer--陣列中重複的數字陣列
- 劍指Offer-31-最小的K個數
- 劍指offer之順序列印陣列陣列
- Leetcode 劍指 Offer 40. 最小的k個數LeetCode
- Leetcode 劍指 Offer 03. 陣列中重複的數字LeetCode陣列
- 【劍指offer】二維陣列中的查詢陣列
- 劍指Offer-39-數字在排序陣列中出現的次數排序陣列
- 劍指 Offer 56 - I. 陣列中數字出現的次數陣列
- 劍指OFFER-數字在升序陣列中出現的次數(Java)陣列Java
- 劍指offer面試題11:旋轉陣列的最小數字(Java版已在牛客網AC)面試題陣列Java
- 劍指Offer-37-陣列中逆序對陣列
- 0二分查詢簡單 牛客NC.71旋轉陣列的最小數字 leetcode劍指 Offer 11. 旋轉陣列的最小數字陣列LeetCode
- 劍指offer之列印超過陣列一半的數字陣列
- 【劍指offer】【1】二維陣列中的查詢陣列
- 劍指 Offer 12-矩陣中的路徑c++矩陣C++
- 劍指offer——斐波那契數列
- 劍指offer刷題之路--1.陣列中重複的數字陣列
- LeetCode C++ 劍指 Offer 51. 陣列中的逆序對【歸併排序/樹狀陣列/線段樹】LeetCodeC++陣列排序
- 二維陣列中的查詢——牛客劍指offer陣列
- nowcoder-劍指offer-二維陣列的查詢陣列
- 劍指 Offer 04. 二維陣列中的查詢陣列
- 劍指Offer-連續子陣列中的最大和陣列
- 劍指 Offer 42.連續子陣列的最大和陣列