网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

LeetCode-剑指面试45-把数组排成最小的数-创新互联

在这里插入图片描述

创新互联主要从事成都做网站、网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务沁阳,10多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:135182197921、内置函数

我们可以使用C++的内置函数,先将所有数组转换成字符串进行排序后再进行输出。在此我们进行排序的逻辑是:若s1 + s2 构成的字符串的值小于 s2 + s1 构成的字符串的值,则将s1排在s2前面。我们将数组排序后统计加入字符串中即可。

class Solution {public:
    static bool cmp(string s1, string s2) {return s1 + s2< s2 + s1;
    }

    string minNumber(vector&nums) {vectornum;
        string res;
        for (int i: nums) {num.emplace_back(to_string(i));
        }
        sort(num.begin(), num.end(), cmp);
        for (string s: num) {res += s;
        }
        return res;
    }
};
2、快排

除了使用内置函数之外,我们还可以自己实现快排。

class Solution {public:
    string minNumber(vector& nums) {vectorstrs;
        for(int i = 0; i< nums.size(); i++)
            strs.push_back(to_string(nums[i]));
        quickSort(strs, 0, strs.size() - 1);
        string res;
        for(string s : strs)
            res.append(s);
        return res;
    }
private:
    void quickSort(vector& strs, int l, int r) {if(l >= r) return;
        int i = l, j = r;
        while(i< j) {while(strs[j] + strs[l] >= strs[l] + strs[j] && i< j) j--;
            while(strs[i] + strs[l]<= strs[l] + strs[i] && i< j) i++;
            swap(strs[i], strs[j]);
        }
        swap(strs[i], strs[l]);
        quickSort(strs, l, i - 1);
        quickSort(strs, i + 1, r);
    }
};

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


分享题目:LeetCode-剑指面试45-把数组排成最小的数-创新互联
网址分享:http://bjjierui.cn/article/poejc.html

其他资讯