剑指offer——面试题33:把数组排成最小的数
2016-12-07 15:03
489 查看
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;
}
// 如果[strNumber1][strNumber2] > [strNumber2][strNumber1], 返回值大于0
// 如果[strNumber1][strNumber2] = [strNumber2][strNumber1], 返回值等于0
// 如果[strNumber1][strNumber2] < [strNumber2][strNumber1], 返回值小于0
int compare(const void* strNumber1, const void* strNumber2)
{
// [strNumber1][strNumber2]
strcpy(g_StrCombine1, *(const char**)strNumber1);
strcat(g_StrCombine1, *(const char**)strNumber2);
// [strNumber2][strNumber1]
strcpy(g_StrCombine2, *(const char**)strNumber2);
strcat(g_StrCombine2, *(const char**)strNumber1);
return strcmp(g_StrCombine1, g_StrCombine2);
}
相关文章推荐
- 剑指offer面试题33:把数组排成最小的数
- 剑指Offer系列-面试题33:把数组排成最小的数
- 剑指Offer面试题33:把数组排成最小的数 Java 实现,三种方法
- 剑指offer-面试题33-把数组排成最小的数
- 剑指Offer:面试题33——把数组排成最小的数(java实现)(未完待续)
- 面试题33:把数组排成最小的数--《剑指offer》
- 剑指Offer_面试题33_把数组排成最小的数
- 《剑指Offer》学习笔记--面试题33:把数组排成最小的数
- 剑指Offer面试题33(java版):把数组排成最小的数
- (剑指Offer)面试题33:把数组排成最小的数
- 剑指Offer:面试题8 :旋转数组的最小数字
- 《剑指offer》面试题8—旋转数组的最小数字
- 面试题33:把数组排成最小的数
- 【剑指Offer学习】【面试题33:把数组排成最小的数】
- 面试题33_把数组排成最小的数
- 把整数排成最小的数——剑指offer面试题33
- 剑指Offer(33)求数组排列出来的最小数
- 面试题08_旋转数组的最小数字——剑指offer系列
- 《剑指Offer》之面试题旋转数组的最小数字
- 《剑指Offer》面试题8:旋转数组的最小数字