题解 | 把数组排成最小的数

把数组排成最小的数

https://www.nowcoder.com/practice/8fecd3f8ba334add803bf2a06af1b993

import java.util.*;


public class Solution {
    // 组成的数的位数是一定的,所以要保证高位的数字较小
    // 只考虑首字符的大小不可靠谱,但是如果字符串a拼接b得到的数字大于b拼接a,那么肯定b应该排在a的前面,我们就要按照这样的次序将排序的比较重写比较器就可以了
    public String PrintMinNumber (int[] numbers) {
        // write code here
        if(numbers.length == 0 || numbers == null) return "";
        String[] nums = new String[numbers.length];
        // 将数字转成字符
        for(int i = 0; i < numbers.length; i++){
            nums[i] = numbers[i] + "";
        }
        // 按照重写排序
	  	// 根据字典序排序,重写Comparator方法
        Arrays.sort(nums,new Comparator<String>(){
            public int compare(String s1, String s2){
                return (s1 + s2).compareTo(s2 + s1);
            }
        });
        StringBuilder str = new StringBuilder();
        for(String i : nums){
            str.append(i);
        }

        return str.toString();
    }
}

全部评论

相关推荐

让资本家给我当牛做马:26的秋招还没开始啊?你找的是实习?实习的话你马上就研三了为什么还要实习?
点赞 评论 收藏
分享
05-29 09:02
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务