[劍指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();
}
相關文章
相關標籤/搜索