【剑指offer】设置在最小数目的阵列
2015-06-20 09:55
337 查看
转载请注明出处:/article/1378894.html
题目描写叙述:输入一个正整数数组,把数组里全部数字拼接起来排成一个数。打印能拼接出的全部数字中最小的一个。
比如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
输入:输入可能包括多个測试例子。
对于每一个測试案例,输入的第一行为一个整数m (1<=m <=100)代表输入的正整数的个数。
输入的第二行包括m个正整数,当中每一个正整数不超过10000000。
输出:相应每一个測试案例,
输出m个数字能排成的最小数字。
例子输入:
AC代码例如以下:
题目描写叙述:输入一个正整数数组,把数组里全部数字拼接起来排成一个数。打印能拼接出的全部数字中最小的一个。
比如输入数组{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; }
相关文章推荐
- css清除浮动
- validate jquery 注册页面使用实例 详解
- js生成验证码并验证
- 漂亮的表格样式(使用CSS样式表控制表格样式)
- jQuery权威指南 学习笔记
- jquery $(document).ready() 与window.onload的区别
- 使用Jquery+EasyUI项目开发情况的框架是中评---员工管理源代码共享
- HTML5系列一(属性概述)
- 【OneAPM】极客编程挑战#023:使用HTML5画布生成渐变自由落体小球效果
- 从零开始学习jQuery
- ZOJ 3842 Cirno's Perfect Math Class (Kummer定理)
- 前端经典网址收藏
- Bootstrap+Thinkphp3.2+Auth认证+jquery-validator后台
- jQuery实现的简单图片淡化轮询
- DOM解析(GDataXMLNode)详解,xml解析
- HTML中NAME与ID的区别
- React.js终探(七)(完)
- Render blocking javascripts
- [LeetCode][JavaScript]Best Time to Buy and Sell Stock II
- javascript block