转载请注明出处:http://blog.csdn.net/ns_code/article/details/28128551

题目描写叙述:

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

比如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。

输入:

输入可能包括多个測试例子。
对于每一个測试案例,输入的第一行为一个整数m (1<=m <=100)代表输入的正整数的个数。
输入的第二行包括m个正整数,当中每一个正整数不超过10000000。

输出:

相应每一个測试案例,
输出m个数字能排成的最小数字。

例子输入:
3
23 13 6
2
23456 56
例子输出:
13236
2345656

这道题主要要自己定义一个比較组合后的数字的大小的规则,主要是对于数字m和n,先将其转化为字符串,而后比較其组合mn和nm的大小,这里直接依照字符串的大小标准来比較就可以,最后用qsort进行排序。排序后的字符串数组中的字符串从左向右组合起来的字符串即使最小的字符串,即转化为整数后为最小的整数。

AC代码例如以下:

#include<stdio.h>
#include<stdlib.h>
#include<string.h> char strs[100][10]; /*
自己定义比較规则
*/
int mycompare(const void *str1,const void *str2)
{
static char s1[20];
static char s2[20];
char *string1 = (char *)str1;
char *string2 = (char *)str2;
//将两个字符串合并在一起
sprintf(s1,"%s%s",string1,string2);
sprintf(s2,"%s%s",string2,string1); return strcmp(s1,s2);
} /*
以字符串形式打印出最小的整数
*/
void PrintMinNum(int *nums,int len)
{
if(nums==NULL || len<1)
return; int i;
//将整数写入到字符串中
for(i=0;i<len;i++)
sprintf(strs[i],"%d",nums[i]); //依照mycompare中指定的规则排序
qsort(strs,len,10*sizeof(char),mycompare); for(i=0;i<len;i++)
printf("%s",strs[i]);
printf("\n");
} int main()
{
int nums[100];
int m;
while(scanf("%d",&m) != EOF)
{
int i;
for(i=0;i<m;i++)
scanf("%d",nums+i); PrintMinNum(nums,m);
} return 0;
}

/**************************************************************
    Problem: 1504
    User: mmc_maodun
    Language: C++
    Result: Accepted
    Time:240 ms
    Memory:1020 kb
****************************************************************/

【剑指offer】设置在最小数目的阵列的更多相关文章

  1. 剑指offer习题集2

    1.把数组排成最小的数 class Solution { public: static bool compare(const string& s1, const string& s2) ...

  2. 《剑指offer》全部题目-含Java实现

    1.二维数组中的查找 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. publi ...

  3. 剑指offer题目java实现

    Problem2:实现Singleton模式 题目描述:设计一个类,我们只能生成该类的一个实例 package Problem2; public class SingletonClass { /* * ...

  4. 《剑指offer》内容总结

    (1)剑指Offer——Trie树(字典树) Trie树 Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种.典型应用是统计和排序大量的字符串(但不仅限于字符串),所以经常 ...

  5. 剑指offer第二章

    剑指offer第二章 1.二维数组中的查找 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含 ...

  6. 剑指offer题解(Java版)

    剑指offer题解(Java版) 从尾到头打印链表 题目描述 输入一个链表,按从尾到头的顺序返回一个ArrayList. 方法1:用一个栈保存从头到尾访问链表的每个结点的值,然后按出栈顺序将各个值存入 ...

  7. 《剑指offer》面试题11: 数值的整数次方

    面试题11: 数值的整数次方 剑指offer面试题11,题目如下 实现函数double power(double base,int exponent),求base的exponent次方, 不得使用库 ...

  8. 剑指offer习题集1

    1.打印二叉树 程序很简单,但是其中犯了一个小错误,死活找不到,写代码要注意啊 这里左右子树,要注意是node->left,结果写成root->left vector<int> ...

  9. 剑指Offer:面试题15——链表中倒数第k个结点(java实现)

    问题描述 输入一个链表,输出该链表中倒数第k个结点.(尾结点是倒数第一个) 结点定义如下: public class ListNode { int val; ListNode next = null; ...

随机推荐

  1. IE6_一些简单bug

    1.IE6调整窗口大小的 Bug 当把body居中放置,改变IE浏览器大小的时候,任何在body里面的相对定位元素都会固定不动了.给body定义position:relative;就行了. 2.避免百 ...

  2. setjmp和longjmp函数使用详解

    源地址:http://blog.csdn.net/zhuanshenweiliu/article/details/41961975 非局部跳转语句---setjmp和longjmp函数.非局部指的是, ...

  3. 多字符集(ANSI)和UNICODE及字符串处理方式准则

    在我们编写程序的时候,使用最多的是字符串的处理,而ANSI和UNICODE的相互转换经常搞的我们头晕眼乱. 应该说UNICODE是一种比较好的编码方式,在我们的程序中应该尽量使用UNICODE编码方式 ...

  4. visio ppt axure AI svg powerdesign xmind

    visio  ppt  axure  AI svg powerdesign xmind

  5. Mysql 导入导出数据结构及数据

    方式一: mysqldump -ukevin -P3306 --default-character-set=utf8 -p -h10.1.15.123 activity sign_in_user &g ...

  6. Cocos2d-x 3.1.1 Lua实例-AccelerometerTest(重力加速计)

    Cocos2d-x 3.1.1 Lua实例-AccelerometerTest(重力加速计) 本篇博客介绍Cocos2d-x的第一个实例--重力加速计測试.效果图(注:这里无法模拟重力感应): --[ ...

  7. 陈词滥调,正确使用memset

    前项目发现一个问题,计划永远是一个dynamic_cast当一个异常动态转换,搜索了半天才发现问题竟然是在memset使用,见.但当处于几十万行代码量级中时,就变得不太那么easy定位了. 本文归纳了 ...

  8. UML它 时序图

    在本文中,我们重点谈谈UML时序图,UML包括在主时序图的建模元素:对象(Actor).生命线(Lifeline).聚焦控制(Focusofcontrol).消息(Message)等等. 一.UML时 ...

  9. Android入门之简单短信发送器

    效果图: manifest.xml 文件中加入  <uses-permission android:name="android.permission.SEND_SMS"/&g ...

  10. Codeforces Round #248 (Div. 1)——Ryouko&#39;s Memory Note

    题目连接 题意: 给n和m,一行m个1<=x<=n的数.记c=.如今仅仅能选择一个数x变成y,序列中全部等于x的值都变成y,求最小的c 分析: 对于一个数x,把与他相邻的所有的非x的数所有 ...