把数组排成最小的数

来源:互联网 发布:黑五值得买 知乎 编辑:程序博客网 时间:2024/06/06 02:27

题目描述

输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
import java.util.ArrayList;import java.util.*;public class Solution {    public String PrintMinNumber(int [] numbers) {StringBuffer str = new StringBuffer();        if(numbers == null || numbers.length == 0)            return str.toString();                ArrayList<Integer> list = new ArrayList<>();        for(int i=0; i<numbers.length; ++i){            list.add(numbers[i]);        }                Collections.sort(list,new Comparator<Integer>(){           public int compare(Integer str1,Integer str2){               String s1 = str1 + "" + str2;               String s2 = str2 + "" + str1;               return s1.compareTo(s2);           }         });                for(int i : list){            str.append(i);        }                return str.toString();    }}

0 0
原创粉丝点击