剑指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;
}


剑指Offer面试题33(java版):把数组排成最小的数

题目:输入一个正整数数组,把数组里面所有的数字拼接排成一个数,打印能拼接出的所有数字中的一个。例如输入数组{3,32,321},则打印出这3个数字能排成的最小数字321323. 这个题目最直接的做法...
  • jsqfengbao
  • jsqfengbao
  • 2015年08月09日 11:12
  • 2983

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

题目:输入一个正整数数组,把数组里面所有的数字拼接排成一个数,打印能拼接出的所有数字中的一个。例如输入数组{3,32,321},则打印出这3个数字能排成的最小数字321323.     这个题目最...
  • abc7845129630
  • abc7845129630
  • 2016年10月05日 16:44
  • 561

剑指Offer(第二版)面试题45:把数组排成最小的数

把数组排成最小的数: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。...
  • qq_25827845
  • qq_25827845
  • 2017年06月24日 10:26
  • 1251

【剑指offer】把数组排成最小的数

题目描述: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 输入: 输...
  • mmc_maodun
  • mmc_maodun
  • 2014年06月03日 08:38
  • 10715

[剑指Offer]把数组排成最小的数

题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。输入int[] ...
  • shakespeare001
  • shakespeare001
  • 2016年05月03日 10:01
  • 1213

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

题目:把数组排成最小的数            输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这3个数字能排成...
  • gg543012991
  • gg543012991
  • 2016年09月20日 22:24
  • 308

解题笔记(25)——把数组排成最小的数

问题描述:输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。例如输入数组{32,  321},则输出这两个能排成的最小数字32132。请给出解决问题的算法,并证明该算法。...
  • wuzhekai1985
  • wuzhekai1985
  • 2011年08月21日 10:40
  • 16700

把数组排成最小的数 java

题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 pack...
  • samjustin1
  • samjustin1
  • 2016年07月18日 09:58
  • 1177

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

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

【OJ题目】把数组排成最小的数

题目描述: 给输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。   样例输入1: {2, 1} 样例输出1: 12   样例输入2: {32, 321...
  • Spy000
  • Spy000
  • 2013年01月06日 17:06
  • 1580
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:剑指offer第三十二题【把数组排成最小的数】c++实现
举报原因:
原因补充:

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