排序的本质:

26 篇文章 0 订阅

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<b;
        }
    };
    
    string minNumber(vector<int>& nums) {
        //本质是一个排序题目。
        //
        
        string cur;
        sort(nums.begin(),nums.end(),cmp());
        
        for(auto& e:nums)
        {
            cur+=to_string(e);
        }
        return cur;
    }
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LYH_1_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值