剑指offer:把数组排成最小的数

首先定义个返回字符串型的PrintMinNumber函数,里面有个整形数组int, vector<string> temp;顶一个字符串型temp,遍历整形数组numbers,把遍历的num变成字符串型全压入temp字符串中,然后用sort重小到大排序,它后半段用了个Lambda 表达式的排序比较函数,两个参数字符串型a,b,如果 a+b<b+a满足,说明a+b合在一起的值更小,不满足则b+a更小,最后定义个结果的字符串,在用个变量t遍历temp字符串(它是小->大的顺序)将从小到大排序后的字符串连接起来,返回最终的result.

class Solution{
public:
string PrintMinNumber(vector<int> numbers){
    vector<string> temp;
    for(auto& num:numbers){
        temp.push_back(to_string(num));

    }
    sort(temp.begin(),temp.end(),[](const string& a,const string& b){return a+b<b+a;});
    string result;
    for(auto& t:temp){//使用引用方式 & 来声明变量 t,以便在循环体内可以修改向量元素的值。
        result+=t;

    }
    return result;

}
};

#剑指offer##23届找工作求助阵地#
全部评论

相关推荐

Java抽象带篮子:难蚌,点进图片上面就是我的大头😆
点赞 评论 收藏
分享
09-25 10:34
东北大学 Java
多面手的小八想要自然醒:所以读这么多年到头来成为时代车轮底下的一粒尘
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务