本文共 783 字,大约阅读时间需要 2 分钟。
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
1.首先这个拼接数组中的操作怎么实现?组成一个字符串
to_string()可以把int转成字符串2.是不是要把所有的组合都选出来,然后一个一个的比较最小值
怎么感觉可以往动态规划中考虑??class Solution1 { public: string PrintMinNumber(vector numbers) { vectorstr; for(int val : numbers) str.push_back(to_string(val)); //把vector 转换为vector #if 0 sort(str.begin(), str.end(),[&](string a,string b){ return a + b < b + a; }); //自定义规则 #endif sort(str.begin(),str.end()); //从小到大 cout<<"0:"< << " "<<"1:"< << " "<<"2:"< <
转载地址:http://rcten.baihongyu.com/