剑指 Offer 45. 把数组排成最小的数_数组

思路

本题解来自:​​面试题45. 把数组排成最小的数(自定义排序,清晰图解)​

方法:自定义排序

剑指 Offer 45. 把数组排成最小的数_自定义排序_02

 剑指 Offer 45. 把数组排成最小的数_数组_03

 

1 class Solution {
2 public:
3 string minNumber(vector<int>& nums) {
4 vector<string> vs;
5 for(int i = 0; i < nums.size(); ++i)
6 vs.push_back(to_string(nums[i]));
7 sort(vs.begin(), vs.end(), cmp);
8
9 string res;
10 for(string &s : vs)
11 res += s;
12
13 return res;
14 }
15
16 static bool cmp(string x, string y) {
17 return x + y < y + x;
18 }
19 };