[剑指offer专题]把数组排成最小的数

//举例:“3”<"31" 可是“331”>"313",因此将两者拼接起来进行比较
public String PrintMinNumber(int[] numbers){
    if(numbers == null || numbers.length == 0)
        return null;
    int len = numbers.length;
    String[] str = new String[len];
    StringBuilder sb = new StringBuilder();
    for(int i = 0;i < len ; i++){
        str[i] = String.valueOf(numbers[i]);
    }
    
    Arrays.sort(str,new Comparator<String>(){
        @Override
        public int compare(String s1,String s2){
            String c1 = s1+s2;
            String c2 = s2+s1;
            return c1.comparaTo(c2);
        }
    });
    for(int i= 0;i < len;i++){
        sb.append(str[i]);
    }
    return sb.toString();
}
相关文章
相关标签/搜索