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);
}


有效的比较规则。



相关文章推荐

剑指offer-5-面试33:把数组排成最小的数(时间效率)

题目 分析 测试用例代码 本题考点 题目 输入一个正整数数组,把数组里所有数字拼接起来拍成一个树,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这 3 个数...

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

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

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

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

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

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

JianZhiOffer_p33_把数组排成最小的数

输入一个正整数数组,将数组中各个数字连成一个数,输出所有可能的数字中最小的那个数。举个栗子: 输入: 3,32,321 输出: 321323最直观的做法是穷举所有排列所组成的数字,再从中找出最小的...

面试题33:把数组排成最小的数

* 解题思路: * 先将整型数组转换成String数组,然后将String数组排序,最后将排好序的字符串数组拼接出来。关键就是制定排序规则。 * 排序规则如下: * 若ab > ba 则 a > b,...

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

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

面试题33:把数组排成最小的数

把数组排成最小的数。

面试题33:把数组排成最小的数--《剑指offer》

问题:输入一个正整数数组,把数组里面的所有数字连接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3, 32, 321},则打印这三个数字能排成的最小数字321323。 这题如果按...
  • xjm199
  • xjm199
  • 2014年06月04日 20:34
  • 866

面试题33:把数组排成最小的数

package com.abuge; /** * 面试题33:把数组排成最小的数 * 输入一个正整数数组,把数组里所有数字拼接成一个数,打印成能拼接出所有数字中最小的一个。 * 例如输入数组{3...
  • hxysea
  • hxysea
  • 2014年09月04日 11:26
  • 320
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:33.把数组排成最小的数
举报原因:
原因补充:

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