1,题目:

2,这道题的本质其实细看的话还是排序。
核心:只是排序的规则变了,之前的排序都是比较数值大小,现在这个规则变得不一样了。
规则:假设 string x; string y;
if(x+y>y+x) :此时x因该要放在y的后面,因为我们按照题目要求要最小的。所以我们
随便用哪一种排序方法,控制比较规则就好了。直接排序:
3,使用快排示范
此题首先暴力是过不去的,直接去模拟思路简单,但是效率不行,空间浪费严重。
- //没写过感觉一定不会啊,暴力也过不去。
-
-
-
- //核心就是要抽象出来这是一个排序,只是这是一个规则不同的排序了。但还是排序的。
- class Solution {
- public:
-
- struct cmp
- {
- bool operator ()(int x,int y)
- {
- string a=to_string(x)+to_string(y);
- string b=to_string(y)+to_string(x);
- //想要排一个升序。
- return a
- }
- };
-
- string minNumber(vector<int>& nums) {
- //本质是一个排序题目。
- //
-
- string cur;
- sort(nums.begin(),nums.end(),cmp());
-
- for(auto& e:nums)
- {
- cur+=to_string(e);
- }
- return cur;
- }
- };