179.最大数

【LeetCode刷题-排序】--179.最大数-LMLPHP

思路:

【LeetCode刷题-排序】--179.最大数-LMLPHP

方法:自定义排序

class Solution {
    public String largestNumber(int[] nums) {
        if(nums == null || nums.length == 0){
            return "";
        }
        //将每个数字转换成字符串
        String[] strs = new String[nums.length];
        for(int i = 0;i < nums.length;i++){
            strs[i] = String.valueOf(nums[i]);
        }

        //自定义比较规则
        Arrays.sort(strs,new Comparator<String>() {
            public int compare(String x,String y) {
                //y+x > x+y --x,y需要交换,则x<y
                //y+x < x+y --x,y不需要交换,则x>y
                return (y+x).compareTo(x+y);
            }
        });
        //特殊情况
        if(strs[0].equals("0")){
            return "0";
        }
        StringBuilder sb = new StringBuilder();
        for(String str : strs){
            sb.append(str);
        }
        return sb.toString();

    }
}
12-17 14:06