剑指offer经典编程(十八)

来源:互联网 发布:华三交换机开启端口 编辑:程序博客网 时间:2024/05/27 00:55

把数组排成最小的数

输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。

import java.util.*;public class Solution {    public String PrintMinNumber(int [] numbers) {        if(numbers == null || numbers.length <=0){            return "";        }        int len = numbers.length;        String[] str = new String[len];        for (int i = 0;i<len;i++){            str[i] = String.valueOf(numbers[i]);        }        Arrays.sort(str, new Comparator<String>() {            @Override            public int compare(String o1, String o2) {                String str1 = o1+o2;                String str2 = o2+o1;                return str1.compareTo(str2);            }        });        StringBuffer sb = new StringBuffer();        for (int i = 0;i<len;i++){            sb.append(str[i]);        }        String string = sb.toString();        return string;    }}
0 0
原创粉丝点击