标签:
输入一个正整形数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中的最小的一个,例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字321323。
public static void printMinNumber(int[] num) { if(num==null || num.length ==0)return ; String[] newNum = new String[num.length]; for(int index=0;i<num.length;index++) { newNum[index] = String.valueOf(num[index]); } for(int i =0 ;i<newNum.length-1 ;i++) { for(int j=i+1;j<newNum.length ;j++) { String temp1 = newNum[i]+newNum[j]; String temp2 = newNum[j]+newNum[i]; if(temp1.compareTo(temp2)>0) swap(newNum,i,j);//交换 } } for(String te : newNum) System.out.print(te+" "); }
public static void printMinNumber(int[] num) { if(num==null || num.length ==0)return ; String[] newNum = new String[num.length]; int index=0; for(int tem : num) { newNum[index++] = String.valueOf(tem); } String s1 =num[0]+num[1]; String s2 = num[1]+num[0]; Arrays.sort(newNum,new Comparator<String>(){ public int compare(String o1,String o2) { return (o1+o2).compareTo(o2+o1); } }); for(String te : newNum) System.out.print(te+"-----"); }其实思想都是一样的,都是比较第一个加第二个和第二个加第一个哪一个比较大。
版权声明:本文为博主原创文章,转载请注明出处。
标签:
原文地址:http://blog.csdn.net/u014307117/article/details/47658309