最大数--自定义排序方法、数字与字符串互转、字符串拼接

给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。

https://leetcode-cn.com/problems/largest-number/

 

关于自定义比较器:https://www.cnblogs.com/gaoBlog/p/10754935.html 使用Comparator接口

 

class Solution {
public class comparator implements Comparator<String>
{
    public int compare(String a, String b) {
        String temp1 = a+b;
        String temp2 = b+a;
        //int result = Integer.parseInt(temp2)-Integer.parseInt(temp1); //数字太大时无法比较
        return temp2.compareTo(temp1);  
    }
}

    public String largestNumber(int[] nums) {
        
        
        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());
        if(strs[0].equals("0")) //[0,0]
        {
            return "0";
        }
        String result="";
        for(int i=0;i<nums.length;i++)
        {
           result+=strs[i];
        }
        return result;
    }
}

 

posted on 2020-04-08 14:37  洛小侠  阅读(241)  评论(0编辑  收藏  举报

导航