33.把数组排成最小的数

原创 2015年07月10日 13:53:55


const int g_MaxNumberLength = 10;
char *g_StrCombine1 = new char[g_MaxNumberLength * 2 + 1];
char *g_StrCombine2 = new char[g_MaxNumberLength * 2 + 1];
void PrintMinNumber(int* numbers, int length)
{
if (numbers == NULL || length <= 0)
return;
char** strNumbers = (char**)(new int[length]);
for (int i = 0; i < length; ++i)
{
strNumbers[i] = new char[g_MaxNumberLength + 1];
sprintf(strNumbers[i], "%d", numbers[i]);
}
qsort(strNumbers, length, sizeof(char*), compare);
for (int i = 0; i < length; ++i)
printf("%s", strNumbers[i]);
printf("\n");
for (int i = 0; i < length; ++i)
delete[] strNumbers[i];
delete[] strNumbers;
}
int compare(const void*strNumber1, const void* strNumber2)
{
strcpy(g_StrCombine1, *(const char**)strNumber1);
strcat(g_StrCombine1, *(const char**)strNumber2);
strcpy(g_StrCombine2, *(const char**)strNumber2);
strcat(g_StrCombine2, *(const char**)strNumber1);
return strcmp(g_StrCombine1, g_StrCombine2);
}


有效的比较规则。



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

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

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

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

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

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

把数组排成最小的数 java

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

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

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

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

题目描述: 给输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。   样例输入1: {2, 1} 样例输出1: 12   样例输入2: {32, 321...
  • Spy000
  • Spy000
  • 2013年01月06日 17:06
  • 1579

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

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

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

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

Leetcode (8) Largest Number (剑指offer 33题 把数组排成最小的数)

题目描述Given a list of non negative integers, arrange them such that they form the largest number.For e...
  • angelazy
  • angelazy
  • 2015年04月11日 16:52
  • 782

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

/* 33: > 把数组排列成最小的数 {3,32,321} -> 321323 考虑大数问题,开辟 指针数组(str数组) ,每个元素的字符串,存放对应位置的整数(sprin...
  • Irean_Lau
  • Irean_Lau
  • 2016年04月07日 16:00
  • 350
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:33.把数组排成最小的数
举报原因:
原因补充:

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