思路1:求出这几个数的全排列,然后拼接起来存储为long类型,排序之后得到最小的数。
import java.util.ArrayList;
import java.util.*;
public class Solution {
ArrayList<Long> list=new ArrayList<>();
public String PrintMinNumber(int [] numbers) {
String str="";
if(numbers.length==0){
return str;
}
getAlllist(numbers,new ArrayList<String>());
Collections.sort(list);
return String.valueOf(list.get(0));
}
private void getAlllist(int[] numbers,ArrayList<String> temp){
if(temp.size()==numbers.length){
String str=String.join("",new ArrayList<String>(temp));
list.add(Long.valueOf(str));
}
else
for(int i=0;i<=temp.size();i++){
temp.add(i,String.valueOf(numbers[temp.size()]));
getAlllist(numbers,temp);
temp.remove(i);
}
}
}