剑指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届找工作求助阵地#