題目:
思路: 就是簡單排序,不過排序的標準是自定義的
首先分析兩個數 32,321 這兩個數字合成32132,32321這兩個數字,明顯後者更大。這時候可以這樣分析,AB和BA的問題,AB和BA都是兩數合成字符串。然後冒泡排序。
代碼:
public class Solution {
public String PrintMinNumber(int [] numbers) {
String result ="";
if (numbers.length ==0)
return result;
if (numbers.length ==1)
return String.valueOf(numbers[0]);
for(int i=0;i<numbers.length-1;i++){
for(int j=i+1;j<numbers.length;j++){
if (CompareBy(numbers[i],numbers[j])==false){
int tem =numbers[i];
numbers[i] =numbers[j];
numbers[j] =tem;
}
}
}
for(int i=0;i<numbers.length;i++){
result+=String.valueOf(numbers[i]);
}
return result;
}
private boolean CompareBy(int number, int number1) {
//如果是小的話,返回true;
//如果是大的話,返回false;
//boolean result =true;
String str1 =String.valueOf(number)+String.valueOf(number1);
String str2 =String.valueOf(number1)+String.valueOf(number);
if (str1.compareTo(str2) >0)
return false;
else
return true;
}
}