非负整数数组,重新排序组成最大数

非负整数数组,重新排序组成最大数[编程语言教程]

看大佬题解学到了
数组内元素逐个转化为字符串后,直接通过compareTo方法比较
compareTo方法比较:从头开始比较对应字符的大小
a.compareTo(b):如果a的第一个字符和b的第一个字符不等,结束比较,返回他们之间的长度差值
               如果a的第一个字符和b的第一个字符相等,则a的第二个字符和b的第二个字符做比较
               依次比较,直到某一方长度不足结束
class Solution {
    public String largestNumber(int[] nums) {
        int len = nums.length;
        String temp[] = new String[len];
        for(int i=0;i<len;i++){
            temp[i] = String.valueOf(nums[i]);
        }
        Arrays.sort(temp,(a,b)->(b+a).compareTo(a+b)); //自定排序,[1,12,2]——>[2,12,1]
        if(temp[0].equals("0")){ //如果第一位为0,后面都会小于等于0,直接返回0
            return "0";
        }
        StringBuilder sb = new StringBuilder();
        for(int i=0;i<len;i++){
            sb.append(temp[i]);
        }
        return sb.toString();
    }
}

非负整数数组,重新排序组成最大数

原文:https://www.cnblogs.com/jackiez/p/14651176.html

hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » 非负整数数组,重新排序组成最大数