题目描述
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
来源:https://www.nowcoder.com/practice/8fecd3f8ba334add803bf2a06af1b993?tpId=13&tqId=11185&tPage=2&rp=2&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-ranking
import java.util.ArrayList;
public class Solution {
public static String PrintMinNumber(int [] number) {
if(number==null||number.length==0)
return "";
for(int i=0;i<number.length;i++){
for(int j=i+1;j<number.length;j++){
String sum1=String.valueOf(number[i])+String.valueOf(number[j]);
String sum2=String.valueOf(number[j])+String.valueOf(number[i]);
if(sum1.compareTo(sum2)>0){
int temp=number[i];
number[i]=number[j];
number[j]=temp;
}
}
}
String str="";
for(int i=0;i<number.length;i++)
str=str+String.valueOf(number[i]);
return str;
}
}