给定一组非负整数,重新排列每个数的顺序使之组成一个最大的整数。输出结果可能非常大,所以你需要返回一个字符串Q而不是整数。
@Override public int compare(String a, String b) { // 返回正数表示要交换,正常为b+a,即大的放前 // 由小到大排序(前者减去后者) // 由大到小排序(后者减去前者) String r1=a+b; String r2=b+a; return r2.compareTo(r1); } } /** * 1. 获取整形数组的每个值,将其转化为String类型数组中 * 2. 数组两两排列进行比较,得到最好的数组排序 * 3。定义一个String类型字符串,数组拼接为字符串 */ public static String largeNumber(int[] num){ String[] sArray=new String[num.length]; for(int i=0;i<num.length;i++){ sArray[i]=String.valueOf(num[i]); } Arrays.sort(sArray,new LargerString() ); if(sArray[0].equals("0")){ return "0"; } String largeString=""; for(int i=0;i<sArray.length;i++){ largeString+=sArray[i]; } return largeString; } }