剑指 Offer 45. 把数组排成最小的数

length是数组的属性,单独String用.length(),数组的属性就用.length。

这道题也只是知道策略,不知道怎么证明。

剑指 Offer 45. 把数组排成最小的数

class Solution {
    public String minNumber(int[] nums) {
        //这里是一个String数组,对应题目中的一个int数组中的每个数字
        String[] arr = new String[nums.length];
        //将int数组转换成String数组
        for (int i = 0; i < nums.length; i++)
            arr[i] = String.valueOf(nums[i]);
        //lambda表达式,两个字符串拼接顺序,小的在前面
        Arrays.sort(arr, (x, y) -> (x + y).compareTo(y + x));
        StringBuilder res = new StringBuilder();
        for(int i = 0; i  < arr.length; i++)
            res.append(arr[i]);
        return res.toString();
    }
}

 

posted @ 2021-04-14 16:03  星予  阅读(39)  评论(0)    收藏  举报