179 largest number

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

class Solution {
    public String largestNumber(int[] nums) {
        String[] numbers = new String[nums.length];
        for (int i = 0; i < nums.length; i++) {
            numbers[i] = String.valueOf(nums[i]);
        }
        Arrays.sort(numbers, new Comparator<String>() {
            @Override
            public int compare(String a, String b){
                String order1 = a + b;
                String order2 = b + a;
                return order1.compareTo(order2);
            }
        });
        if (numbers[numbers.length - 1].equals("0")) {
            return "0";
        }
        String ans = "";
        for (int i = numbers.length - 1; i >= 0; i--) {
            ans += numbers[i];
        }
        return ans;
    }
}

注意comparator的妙用,把两两组合后在先时结果较大的数排在前面

同时注意valueOf的使用,用于转int为string

Last updated