输入一个正整数数组,将他们连接起来排成一个数,输出能排出的所有数字中最小的一个
对于两个字符串重新定义其大小规则,比如:给定两个字符串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>(){@Overridepublic int compare(String o1, String o2){// TODO Auto-generated method stubString 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;}