博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
把数组排成最小的数
阅读量:4212 次
发布时间:2019-05-26

本文共 1215 字,大约阅读时间需要 4 分钟。

题目描述

输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组 {3,32,321},则打印出这三个数字能排成的最小数字为 321323。

 

 

代码如下:

 

import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;public class MinNumber {		ArrayList
array=new ArrayList<>(); class ComparatorListSort implements Comparator { //自定义比较器 @Override public int compare(Object o1, Object o2) { char[] s1=(String.valueOf(o1)).toCharArray(); char[] s2=(String.valueOf(o2)).toCharArray(); int s1_n=s1.length; int s2_n=s2.length; int min=s1_n-s2_n>0?s2_n:s1_n; for(int i=0;i
s2[i]) { return 1; } else { continue; } } if(s1_n==s2_n) { return 0; } else if(s1_n
temp) { if(left==0) { StringBuilder sb=new StringBuilder(); for(int value:temp) { sb.append(value); } array.add(sb.toString()); return; } for(int i=0;i
temp=new ArrayList<>(); getAll(n, n,flag, numbers,temp); Collections.sort(array,new ComparatorListSort()); //调用collections工具类,其中用到了定义比较器,使之可以按照我们规定的方式进行排序 return array.get(0); } public static void main(String[] args) { System.out.println(new MinNumber().PrintMinNumber(new int[] {3,32,321,11,22})); }}

 

转载地址:http://dckmi.baihongyu.com/

你可能感兴趣的文章
信息粒度
查看>>
模式分解
查看>>
数据和信息
查看>>
讲解MSSQL数据库中SQL锁机制和事务隔离级别
查看>>
Reporting Services 2: 参数化报表
查看>>
配置用于远程管理的报表服务器
查看>>
Sql2005 全文索引
查看>>
全文检索拾零
查看>>
sql server 2008全文索引干扰词示例
查看>>
SQL Server DATEDIFF() 函数
查看>>
关于使用表接收存储过程返回结果集的问题
查看>>
SQL Server数据库常用的T-SQL命令
查看>>
SQL SERVER性能优化--Tempdb相关问题
查看>>
SQL SERVER 中如何使用行锁
查看>>
SQL Server索引原则
查看>>
清理SQL Server 2008数据库日志
查看>>
索引记录数据的基本格式
查看>>
SQL SERVER性能优化--分区表
查看>>
SQL SERVER 2005数据加密
查看>>
SQL SERVER性能分析--死锁检测数据库阻塞语句
查看>>