面试题45. 把数组排成最小的数

题目:

思路:

【1】其实这个题和最大数是一样的,只是排序不同罢了,可以参考最大数 。

代码展示:

//时间4 ms击败96.23%
//内存41 MB击败70.47%
class Solution {
    public String minNumber(int[] nums) {
        int len=nums.length;
        String[] strings=new String[len];
        for (int i = 0; i <len ; i++) {
            strings[i]=String.valueOf(nums[i]);
        }
        Arrays.sort(strings, (o1, o2) -> o1.concat(o2).compareTo(o2.concat(o1)));
        StringBuilder sb=new StringBuilder();
        for (String s:strings) {
            sb.append(s);
        }
        return sb.toString();
    }
}

//Arrays.sort(strings, (o1, o2) -> o1.concat(o2).compareTo(o2.concat(o1)));的完整版:
//根据返回的int值判断是升序还是降序
Arrays.sort(strings ,new Comparator<String>() {
    @Override
    public int compare(String o1, String o2) {
        return o1.concat(o2).compareTo(o2.concat(o1));
    }
});

 

posted @ 2023-02-03 17:32  忧愁的chafry  阅读(19)  评论(0)    收藏  举报