【剑指offer】把数组排成最小的数
2020-12-13 15:16
标签:image begin 最小 div one 规则 padding for lock 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 分析:排成最小的数,那么这些数组元素肯定有个最佳的排序,所以我们需要对数组元素进行排序,排序之后数组元素顺序连接即可组成最小的数 所以这些数排序的规则是什么?字典序! 假如x1x2x3和y1y2y3两个数,组成的数x1x2x3y1y2y3或y1y2y3x1x2x3字典序小的放前面! 关键排序规则函数: 【剑指offer】把数组排成最小的数 标签:image begin 最小 div one 规则 padding for lock 原文地址:https://www.cnblogs.com/yinbiao/p/11577468.html题目描述
static bool cmp(string a,string b)
{
string str1=a+b;
string str2=b+a;
return str1.compare(str2)
}
//排序规则函数
static bool cmp(string a,string b)
{
string str1=a+b;
string str2=b+a;
return str1.compare(str2)0;
}
//int 转 string
string intTostring(int x)
{
stringstream ss;
ssx;
string str=ss.str();
return str;
}
string PrintMinNumber(vectorint> numbers)
{
vectorstring> v;
int n=numbers.size();
if(n==0)
return "";
for(int i=0;i