给出一组非负整数,重新排列他们的顺序把他们组成一个最大的整数
Yes
样例
给出样例 [1, 20, 23, 4, 8],返回组合最大的整数为8423201
注意
最后的结果可能很大,所以我们返回一个字符串来代替这个整数
public class Solution {
/**
*@param num: A list of non negative integers
*@return: A string
*/
public String largestNumber(int[] num) {
// write your code here
String res = "";
if(num==null||0==num.length) return res;
int len = num.length;
String[] strNum = new String[len];
for(int i=0;i<len;i++){
strNum[i] = ""+num[i];
}
Arrays.sort(strNum, new StringComparator());
int zeroNum = 0;
while(zeroNum<len-1&&"0".equals(strNum[zeroNum])){
zeroNum++;
}
for(int i=zeroNum;i<len;i++){
res += strNum[i];
}
return res;
}
class StringComparator implements Comparator<String>{
public int compare(String s1, String s2) {
// TODO Auto-generated method stub
return (s2 + s1).compareTo(s1 + s2);
}
}
}