import java.util.*;
public class Solution {
//自定义排序规则:思想就是让任意两个数字组成的数都是较小的哪一种情况
class Myconparator implements Comparator<Integer> {
public int compare(Integer n1 , Integer n2) {
long l1 = Long.parseLong(n1+""+n2) ;
long l2 = Long.parseLong(n2+""+n1) ;
if(l1 == l2) {
return 0 ;
} else if(l1 > l2) {
return 1 ;
} else {
return -1 ;
}
}
}
//快排(也可以用Arrays.sort() , 单纯练习一下快排)
public void sort(int[] numbers , int start , int end , Myconparator cmp) {
if(start >= end) {
return ;
}
int i = start ;
int j = end ;
int temp = numbers[start] ;
while(i < j) {
while(i < j && cmp.compare(numbers[j],temp) > 0) {
j-- ;
}
if(i < j) {
numbers[i] = numbers[j] ;
i++ ;
}
while(i < j && cmp.compare(numbers[i],temp) < 0) {
i++ ;
}
if(i < j) {
numbers[j] = numbers[i] ;
j-- ;
}
}
numbers[i] = temp ;
sort(numbers , start , i-1,cmp) ;
sort(numbers , i+1 , end , cmp) ;
}
public String PrintMinNumber(int [] numbers) {
sort(numbers , 0 , numbers.length-1 , new Myconparator()) ;
StringBuilder sb = new StringBuilder() ;
for(int n : numbers) {
sb.append(String.valueOf(n)) ;
}
return sb.toString() ;
}
}