给定一组非负整数,重新排列每个数的顺序使之组成一个最大的整数。输出结果可能非常大,所以你需要返回一个字符串Q而不是整数。

发布时间 2023-10-29 00:17:23作者: 樱圃
        @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;
    }
}