## [179\. Largest Number](https://leetcode.com/problems/largest-number/)
Given a list of non-negative integers `nums`, arrange them such that they form the largest number and return it.
Since the result may be very large, so you need to return a string instead of an integer.
**Example 1:**
**Input:** nums = \[10,2\]
**Output:** "210"
**Example 2:**
**Input:** nums = \[3,30,34,5,9\]
**Output:** "9534330"
**Constraints:**
- `1 <= nums.length <= 100`
- `0 <= nums[i] <= 109`
```cpp=
class Solution {
public:
string largestNumber(vector<int>& nums) {
int n = nums.size();
vector<string> strNums(n);
// 元素轉成 string
for (int i = 0; i < n; ++i) {
strNums[i] = to_string(nums[i]);
}
sort(strNums.begin(), strNums.end(),
[](string& a, string& b) { return a + b > b + a; });
// 因為已經從大排到小了,最前面如果是 0,就直接返回 0
if (strNums[0] == "0") {
return "0";
}
string res;
for (string s : strNums) res += s;
return res;
}
};
```
:::success
- 時間複雜度:$O(N \cdot N)$
- 空間複雜度:$O(N)$
:::