题目输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最 小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为 321323。
分析:
无标题.png
public static String findMinNum ( int[] a){
int num = 0;
String strnum = " ";
StringBuilder sb = new StringBuilder();
for (int i = 0; i < a.length; i++) {
for(int j=i+1;j<a.length;j++) {
if (!myCompare(a[i], a[j])) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
sb.append(a[i]);
}
return sb.toString();
}
public static boolean myCompare ( int i, int j){
String stra = Integer.toString(i);
String strb = Integer.toString(j);
boolean flag = false;
if (Integer.parseInt(stra + strb) < Integer.parseInt(strb + stra)) {
flag = true;
}
return flag;
}