把数组排成最小的数

把数组排成最小的数

https://www.nowcoder.com/practice/8fecd3f8ba334add803bf2a06af1b993?tpId=13&&tqId=11185&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

这道题目可以看成是一道排序的题目,因为要使得结果最小,那么给出的整数要怎么排列呢?
其实就可以转化为 A+B 与 B+A 之间比较的问题,当A+B小于B+A的时候,很明显A要放在B的前面,这样才能使得结果小。
所以我们可以利用sort函数进行排序。

public String PrintMinNumber(int [] numbers) {
        // 3   32  321 
        if(numbers == null || numbers.length == 0)
            return "";
        int n = numbers.length;
        String[] nums = new String[n];
        for(int i = 0; i < n; i++){
            nums[i] = numbers[i]+"";
        }
        Arrays.sort(nums,(s1,s2)->{
           return (s1+s2).compareTo(s2+s1);  /*升序*/
        });
        StringBuffer sb = new StringBuffer();
        for(String num:nums)
            sb.append(num);
        return sb.toString();
    }
剑指offer 文章被收录于专栏

为刷过的每一道题都书写一篇题解,便于重复练习~

全部评论

相关推荐

不愿透露姓名的神秘牛友
02-12 10:05
小米集团 算法工程师 28.0k*15.0
泡沫灬一触即破:楼上那个看来是看人拿高薪,自己又不如意搁这泄愤呢是吧,看你过往评论很难不怀疑你的精神状态
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
02-14 11:10
点赞 评论 收藏
分享
昨天 00:16
已编辑
湖北大学 Java
Java抽象带篮子:java简历怎么写可以看看我发的帖子,很详细的
点赞 评论 收藏
分享
评论
3
1
分享

创作者周榜

更多
牛客网
牛客企业服务