剑指offer第三十二题【把数组排成最小的数】c++实现

原创 2015年11月18日 11:37:37
把数组排成最小的数

题目描述

输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。

这道题其实就是一道排序题,主要就是排序规则。

要的是连接后的字典序最小

那就是  s1+s2和s2+s1当做排序依据

string toString(int number){
    char s[15] ;
    sprintf(s,"%d",number);
    string res(s);
    return res;
}
bool cmp(int a,int b){
    string sa=toString(a)+toString(b);
    string sb=toString(b)+toString(a);
    return sa<sb;
}
string PrintMinNumber(vector<int> numbers) {
    sort(numbers.begin(),numbers.end(),cmp);
    string res="";
    for(int i=0;i<numbers.size();i++){
        res+=toString(numbers[i]);
    }
    return res;
}


相关文章推荐

用C++解决:把数组排成最小的数问题

问题描述: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印出拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这3个数字能拍成的最小数字321323。 ...
  • LeoSha
  • LeoSha
  • 2015年06月12日 20:03
  • 803

剑指offer刷题之java实现的把数组排成最小的数

题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 参考文献...

剑指Offer:面试题33——把数组排成最小的数(java实现)(未完待续)

问题描述: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 思路1...

剑指Offer面试题33:把数组排成最小的数 Java 实现,三种方法

题目:把数组排成最小的数            输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这3个数字能排成...

【剑指Offer面试编程题】题目1504:把数组排成最小的数--九度OJ

这道题目首先需要看破的一点就是我们需要用字符串来处理,因为当数字拼接是很容易超过机器最大数。另外,我们需要从最简单、最原始的想法出发,来判断数字应该怎么拼接。我们可以想象成对给定的一堆字符串排序,使得...

《剑指Offer》面试题:把数组排成最小的数和qsort函数的一点介绍

题目描述: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。思路 先...

19.剑指offer-把数组排成最小的数

1.题目 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 2. 基...

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

输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。...

【剑指Offer】面试题33:把数组排成最小的数

一:题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 二:...

剑指offer 面试题33—把数组排成最小的数

题目: 输入一个正整数数组,把数组里面的所有数字连接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3, 32,  321},则打印这三个数字能排成的最小数字321323。 基本...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:剑指offer第三十二题【把数组排成最小的数】c++实现
举报原因:
原因补充:

(最多只允许输入30个字)