微软算法100题68 用数组排成最小的数
2015-12-07 11:36
573 查看
68.把数组排成最小的数。
题目:输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的
一个。
例如输入数组{32, 321},则输出这两个能排成的最小数字32132。
请给出解决问题的算法,并证明该算法
题目:输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的
一个。
例如输入数组{32, 321},则输出这两个能排成的最小数字32132。
请给出解决问题的算法,并证明该算法
package com.rui.microsoft; import java.util.Arrays; import java.util.Comparator; public class Test68_Minimum { public static void main(String[] args) { int[] a = {3,2,123}; Test68_Minimum app = new Test68_Minimum(); String res = app.smallest(a); System.out.println(res); } String smallest(int[] a){ Integer[] aux = new Integer[a.length]; for(int i = 0; i < a.length; i++){ aux[i] = a[i]; } Arrays.sort(aux, new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { return ("" + o1 + o2).compareTo("" + o2 + o1); } }); StringBuilder sb = new StringBuilder(); for(int i = 0; i < aux.length; i++){ sb.append(aux[i]); } return sb.toString(); } }
相关文章推荐
- 操作系统---基础题目汇总八
- 黑马程序员——C基础之迷宫游戏
- 中国式民主
- JAVA线程池学习以及队列拒绝策略
- Tomcat中JVM内存溢出及合理配置
- 存储过程
- 高可用集群原理概念详述
- 高可用集群原理概念详述
- C语言_指针
- 笔记十七(绘制图片)
- 3.完整的嵌入式学习路线图
- Swift基础知识
- iBwave
- Unix Network Programming(11)---bind 函数
- Android系统模拟器使用说明
- Docker日志自动化: ElasticSearch、Logstash、Kibana以及Logspout
- footer贴底的纯css实现方法
- 什么是js严格模式?
- 开源电商app常用标签"hot"之第三方开源LabelView
- Tomcat各组件关系及server.xml配置文件介绍