首页 > 编程语言 > 详细

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

时间:2021-04-13 10:35:07      阅读:22      评论:0      收藏:0      [点我收藏+]
看大佬题解学到了
数组内元素逐个转化为字符串后,直接通过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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!