【剑指offer】把数组排成最小的数
来源:互联网 发布:淘宝头条怎么申请 编辑:程序博客网 时间:2024/06/15 02:00
- 题目描述:
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
- 输入:
输入可能包含多个测试样例。
对于每个测试案例,输入的第一行为一个整数m (1<=m <=100)代表输入的正整数的个数。
输入的第二行包括m个正整数,其中每个正整数不超过10000000。
- 输出:
对应每个测试案例,
输出m个数字能排成的最小数字。
- 样例输入:
323 13 6223456 56
- 样例输出:
13236
2345656
题目来自 http://blog.csdn.net/ns_code/article/details/28128551
看到题目第一想法是,先把每个数字换成单独一位的数组 就像吧 1235 换成{1,2,3,5},然后从第一位开始比较大小,小的就放到字符串上,但是我的写法好麻烦,不知道有没有好的写法,
后来就用冒泡排序,先把2个要比较的换成同等位数来比较大小就好了
附上代码
public static int[] minnum(int[] arr) { for(int i = 0; i < arr.Length-1; i++) { for(int j = i+1; j < arr.Length; j++) { int tempi = arr[i], tempj = arr[j]; if (tempi.ToString().Length > tempj.ToString().Length) { while (tempi.ToString().Length > tempj.ToString().Length) { tempj = tempj * 10; } } else { while (tempi.ToString().Length < tempj.ToString().Length) { tempi = tempi * 10; } } if (tempj < tempi) { var temp = arr[j]; arr[j] = arr[i]; arr[i] = temp; } } } return arr; }
有更好的方法吗?
阅读全文
0 0
- 剑指offer-33:把数组排成最小的数
- 剑指offer:把数组排成最小的数
- 【剑指offer】把数组排成最小的数
- 【剑指offer】Q33:把数组排成最小的数
- 九度《剑指offer》把数组排成最小的数
- 剑指Offer之把数组排成最小的数
- 剑指offer系列源码-把数组排成最小的数
- 剑指offer 33 把数组排成最小的数
- 剑指offer--把数组排成最小的数
- 剑指offer之把数组排成最小的数
- 《剑指offer》把数组排成最小的数
- 剑指offer:把数组排成最小的数
- 【剑指Offer】把数组排成最小的数
- 剑指offer—把数组排成最小的数
- 《剑指offer》——把数组排成最小的数
- 【剑指offer】之把数组排成最小的数
- 剑指offer:把数组排成最小的数
- 剑指offer:把数组排成最小的数
- Postgres-XL9.5集群安装与配置
- 已有文件夹添加到ASP.NET解决方案资源管理器中
- 剑指offer-丑数
- Kotlin Reference (十二) Extensions
- Longest Ordered Subsequence --DP
- 【剑指offer】把数组排成最小的数
- 松果
- 软件安全测试需要更加灵活
- 万能的退出函数exit VS ExitProcess
- Java多态性理解
- 求助求助,更改IP以后,hive启动出问题了。只能找到以前的IP,找不到新的IP
- B
- iOS WKWebView——UIWebView的进阶
- HTML5_微信公众号-微信小程序