输入一个正整数数组,将他们连接起来排成一个数,输出会排出的所有数字中最小的一个
输入一个正整数数组,将他们连接起来排成一个数,输出能排出的所有数字中最小的一个
对于两个字符串重新定义其大小规则,比如:给定两个字符串s1,s2,如果s1+s2》s2+s1 那么s1>s2,反之s2>s1
按照这个思路,给出算法如下:
public int finMinCom(int []a) { int result; List<String>strs=new ArrayList<String>(); for(int i:a) { strs.add(String.valueOf(i)); } Collections.sort(strs,new Comparator<String>() { @Override public int compare(String o1, String o2) { // TODO Auto-generated method stub String s1=o1+o2; String s2=o2+o1; return s1.compareTo(s2); } }); StringBuilder sb=new StringBuilder(); for(String str:strs) { sb.append(str); } result=Integer.parseInt(sb.toString()); return result; }